c求最大公约数的算法
1、相减法
#include<stdio.h>
int main()
{
int a,b;
int c=0;//计数器
while(1)//循环判断的作用
{
printf("输入两个数字求最大公约数:");
scanf("%d%d",&a,&b);
while(a!=b)
{
if(a>b)
a=a-b;
else
b=b-a;
c++;
}
printf("最大公约数是:%d ",a);
printf("%d ",c);
}
return 0;
}
运行效果:
2、辗转相除法:
#include<stdio.h>
int a,b,temp;
int Division(){
printf("请输入两个数(a,b): ");
scanf("%d,%d",&a,&b);
if(a<b){
temp=a;
a=b;
b=temp;
}
while(a%b!=0){
temp=a%b;
a=b;
b=temp;
}
printf("最大公约数为:%d ",b);
return 0;
}
3、穷举法
#include<stdio.h>
int main()
{
int a,b,c;
int d=0;//计数器
while(1)
{
printf("输入两个数字求最大公约数:");
scanf("%d%d",&a,&b);
c=(a>b)?b:a;//三目运算符
while(a%c!=0||b%c!=0)
{
c--;
d++;
}
printf("最大公约数是:%d ",c);
printf("%d ",d);
}
return 0;
}
❷ c语言求最大公约数和最小公倍数
c语言求最大公约数和最小公倍数求最小公倍数算法: 最小公倍数=两整数的乘积÷最大公约数求最大公约数算法: (1)辗转相除法 有两整数a和b:
❸ c璇瑷链澶у叕绾︽暟鍜屾渶灏忓叕鍊嶆暟
C璇瑷链澶у叕绾︽暟鍜屾渶灏忓叕鍊嶆暟镄锘烘湰姒傚康锛氭渶澶у叕绾︽暟锛氭寚涓や釜鎴栧氢釜鏁存暟鍏辨湁绾︽暟涓链澶х殑涓涓锛涙渶灏忓叕鍊嶆暟锛氢咯鏁扮浉涔橀櫎浠ユ渶澶у叕绾︽暟銆
鍦–璇瑷涓锛屽彲浠ヤ娇鐢ㄦу嚑閲屽缑绠楁硶锛堣缑杞鐩搁櫎娉曪级𨱒ヨ$畻涓や釜鏁扮殑链澶у叕绾︽暟锛圙CD锛夛纴铹跺悗浣跨敤链澶у叕绾︽暟鍜屾渶灏忓叕鍊嶆暟镄勫叧绯绘潵璁$畻链灏忓叕鍊嶆暟锛圠CM锛夈
姹傛渶澶у叕绾︽暟镄勬柟娉曪细
鏂规硶涓锛氱┓涓炬硶
鍏堜护链澶у叕绾︽暟max涓1锛屽綋淇╀釜鏁疖銆侀兘鑳借寰鐜鍙橀噺i鏁撮櫎镞讹纴鎶婂惊鐜鍙橀噺璧嫔肩粰链澶у叕绾︽暟mx锛岃繖镙峰湪寰鐜缁撴潫钖庯纴灏辨眰寰椾简链澶у叕绾︽暟锛屼絾鏄杩欑嶅仛娉曡繃浜庡嶆潅锛岃楁椂銆
链澶у叕绾︽暟鍜屾渶灏忓叕鍊嶆暟镄勫簲鐢锛
1銆佹渶澶у叕绾︽暟镄勫簲鐢锛氭渶澶у叕绾︽暟鍙浠ョ敤浜庤В鍐充竴浜涙暟瀛﹂梾棰桡纴渚嫔傛眰瑙d袱涓鏁扮殑链澶у叕绾︽暟锛屾垨钥呮眰瑙d竴缁勬暟镄勬渶澶у叕绾︽暟銆傛ゅ栵纴鍦ㄨ$畻链虹戝﹀拰宸ョ▼棰嗗烟锛屾渶澶у叕绾︽暟涔熸湁骞挎硾镄勫簲鐢锛屼緥濡傜敤浜庡瘑镰佸︿腑镄勬ā骞傝繍绠椼佽$畻链哄浘褰㈠︿腑镄勭汗鐞嗘椠灏勭瓑銆
2銆佹渶灏忓叕鍊嶆暟锛圠CM锛夌殑搴旂敤锛氭渶灏忓叕鍊嶆暟鍦ㄨВ鍐充竴浜涙暟瀛﹂梾棰樻椂闱炲父链夌敤锛屼緥濡傛眰瑙d袱涓鏁扮殑链灏忓叕鍊嶆暟锛屾垨钥呮眰瑙d竴缁勬暟镄勬渶灏忓叕鍊嶆暟銆傛ゅ栵纴链灏忓叕鍊嶆暟鍦ㄨ$畻链虹戝﹀拰宸ョ▼棰嗗烟涔熸湁骞挎硾镄勫簲鐢锛屼緥濡傜敤浜庤$畻涓や釜鏁扮殑链灏忓叕鍊嶆暟锛屾垨钥呯敤浜庤$畻涓缁勬暟镄勬渶灏忓叕鍊嶆暟銆