今天給各位分享c語言求最大公約數的知識,其中也會對C語言求最大公約數函數進行解釋,如果能碰巧解決你現在面臨的問題,別忘了關注本站,現在開始吧!
1、相減法
#includelt;stdio.hgt;
intmain()
{
inta,b;
intc=0;//計數器
while(1)//循環判斷的作用
{
printf("輸入兩個數字求最大公約數:");
scanf("%d%d",a,b);
while(a!=b)
{
if(agt;b)
a=a-b;
else
b=b-a;
c++;
}
printf("最大公約數是:%d ",a);
printf("%d ",c);
}
return0;
}
運行效果:
2、輾轉相除法:
#includelt;stdio.hgt;
inta,b,temp;
intDivision(){
printf("請輸入兩個數(a,b): ");
scanf("%d,%d",a,b);
if(alt;b){
temp=a;
a=b;
b=temp;
}
while(a%b!=0){
temp=a%b;
a=b;
b=temp;
}
printf("最大公約數為:%d ",b);
return0;
}
3、窮舉法
#includelt;stdio.hgt;
intmain()
{
inta,b,c;
intd=0;//計數器
while(1)
{
printf("輸入兩個數字求最大公約數:");
scanf("%d%d",a,b);
c=(agt;b)?b:a;//三目運算符
while(a%c!=0||b%c!=0)
{
c--;
d++;
}
printf("最大公約數是:%d ",c);
printf("%d ",d);
}
return0;
}
最大公約數算法:
(1)輾轉相除法
兩整數a和b:
①a%b得余數c
②若c=0,則b即為兩數的最大公約數,結束
③若c≠0,則a=b,b=c,再回去執行①
(2)相減法
兩整數a和b:
①若ab,則a=a-b
②若ab,則b=b-a
③若a=b,則a(或b)即為兩數的最大公約數,結束
④若a≠b,則再回去執行①
(3)窮舉法:
①i=ab中的小數
②若a,b能同時被i整除,則i即為最大公約數,結束
③i--,再回去執行②
1、新建一個C語言源程序,這里使用VisualC++6.0的軟件:
2、從鍵盤中輸入兩個正整數a和b。取兩個數a,b中的較小值存放到變量n中。從兩個數a和b中的較小數開始逐個減小1,尋找能整除a和b的整數,第一個找到的整數即整數a和b的最大公約數,最后將找到的結果輸出即可完成程序的編寫:
3、對源程序編譯運行,測試輸入4、6,得到最大公約數2說明程序是正確的,以上就是用c語言求最大公約數的過程:
關于c語言求最大公約數的內容到此結束,希望對大家有所幫助。