算法:
step1:設i爲2;
step2:如果a和b都能被i整除,則記下這個i;
step3:i加1後重復第二步,直到i等於a或b;
step4:則曾經記下的最大的能同時整除a和b的i就是最大公約數。
程序:
# include<stdio.h>
int main()
{
int a,b;
scanf("%d %d",&a,&b);
int ret=0;
int min=0;
if(a>b){
min=b;
}else{
min=a;
}
for(int i=1; i<=min; i++){
if(a%i==0){
if(b%i==0){
ret = i;
}
}
}
printf("%d和%d的最大公約數爲%d\n",a,b,ret);
return 0;
}
改進:運用邏輯表達式
# include<stdio.h>
int main()
{
int a,b;
scanf("%d %d",&a,&b);
int ret=0;
int min=0;
for(int i=1; i<=a&&i<=b; i++){
if(a%i==0&&b%i==0){
ret = i;
}
}
printf("%d和%d的最大公約數爲%d\n",a,b,ret);
return 0;
}