求最大公因子

问题:

  (穷举法)求两个数的最大公因子,对于输入的a、b的值,首先确定较小者min,即当a<b时,min=a;当a>b时min=b,然后依次测试min-1,min-2,min-3,....,1,而最先能同时被a,b整除的那个数,就是a和b的最大公因子。一旦找到最大公因子,无需继续测试下去。

 1 /*求a,b的最大公因子*/ 
 2 #include<stdio.h>
 3 int main()
 4 {
 5     int a,b,min,k;
 6     do
 7     {
 8         printf("Enter a,b(>0):");
 9         scanf("%d,%d",&a,&b);
10     }while(!(a>0&&b>0));
11     min=(a<b)?a:b;
12     for(k=min;k>=1;k--)
13         if(a%k==0&&b%k==0)
14             break;
15         printf("The largest common factor is %d.",k);
16     return 0;
17  }
18 
19 
20 /*对a,b的两个正整数,输出其所有能够a与b的公因子*/
21 #include<stdio.h>
22 int main()
23 {
24     int a,b,min,k;
25     do
26     {
27         printf("Enter a,b(>0)");
28         scanf("%d,%d",&a,&b);
29     }while(!(a>0&&b>0));
30     min=(a<b)?a:b;
31     for(k=min;k>=1;k--)
32     {
33         if(a%k!=0||b%k!=0)
34             continue;
35         printf("The common factor is %d.
",k); 
36     }
37     return 0; 
38 }




原文地址:https://www.cnblogs.com/geziyu/p/8734932.html