a024

輸入說明 :

兩個整數 大於 0, 小於 231

輸出說明 : 最大公因數為一整數

找gcd,以後再約分的時候會用到,因為約分就除以最大公因數

不是正規gcd(輾轉相除法)的寫法,從比較小的數慢慢遞減看可不可以整除兩個數,找到了就跳出迴圈

#include<stdio.h>
int main(){
    long long int a,b,i;
    while(scanf("%lld %lld",&a,&b)!=EOF)
    {    
        if(a>=b)
        {
             for(i=b;i>0;i--)
             {
               if(a%i==0&&b%i==0)
               break;
             }           
        }
        else 
        {
             for(i=a;i>0;i--)
             {
               if(a%i==0&&b%i==0)
               break;
             }           
        }
        printf("%d\n",i);
    }
return 0;
}

輾轉相除法的寫法,把餘數變除數,把除數變被除數

#include<stdio.h>
int main()
{

    int n,r,temp;
    while(scanf("%d%d",&n,&r)!=EOF)
    {
        while(n%r!=0)
        {
            temp=n%r;
            n=r;
            r=temp;
        }
        printf("%d\n",r);
    }
}