#11117: 取出兩個公因數 如何取最大


gordon636798 (unknown)

學校 : 國立嘉義大學
編號 : 58357
來源 : [27.246.100.134]
最後登入時間 :
2020-02-13 22:57:30
a024. 最大公因數(GCD) | From: [123.110.81.78] | 發表日期 : 2016-06-30 15:24

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
int a,b;
int x;

scanf("%d %d", &a, &b);

for(x=1;(x<=a)&&(x<=b);x++)
{

if ((a%x!=0)||(b%x!=0))
{
continue;
}
printf("%d\n",x);
}

system("PAUSE");
return 0;
}

 
#11179: Re:取出兩個公因數 如何取最大


d2513850 (林勇智)

學校 : 崑山科技大學
編號 : 5102
來源 : [114.140.72.110]
最後登入時間 :
2024-10-20 17:35:39
a024. 最大公因數(GCD) | From: [111.185.178.48] | 發表日期 : 2016-07-16 01:21

#include
#include

int main(int argc, char *argv[])
{
int a,b;
int x;

scanf("%d %d", &a, &b);

for(x=1;(x<=a)&&(x<=b);x++)
{

if ((a%x!=0)||(b%x!=0))
{
continue;
}
printf("%d\n",x);
}

system("PAUSE");
return 0;
}

請用"輾轉相除法"去解:
若x<y的話,則gcd函數得到gcd(y,x%y)=gcd(y,x):
int gcd(int x,int y){
    if(y==0){
        return x;
    }else{
        return gcd(y,x%y);
    }
}

 
ZeroJudge Forum