计算两个数的最大公约数——枚举法

    技术2022-07-12  84

    算法:

    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; }

     

     

    Processed: 0.011, SQL: 10