C語言實現兩個數的最大公約數
阿新 • • 發佈:2018-12-18
(1)窮舉法
c=兩個數中小的一個,給兩個數分別取餘c,判斷餘數是否為0
為0,c就是最大公約數 不為0,依次給c–判斷啥時候兩個數的餘數都為0,即為最大公約數
#include<stdio.h> int main() { int a = 0; int b = 0; scanf("%d %d",& a, &b); int c = a > b ? a : b; for (c; c > 0; c--) { if (a%c == 0 && b%c == 0) break; } printf("c = %d\n", c); return 0; }
(2)輾轉相減法
如果兩個數相等,最大公約數就是它們自身, 不相等,大的數減去小的數賦給大的數,直到它們兩個相等
#include<stdio.h>
int main()
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
while (a != b)
{
if (a > b)
a = a - b;
else
b = b - a;
}
printf("%d \n", a);
return 0;
}
(3)輾轉相除法
c=a%b 判斷c是否為0
為0,c即為最大公約數 不為0,a=b,b=c,再次求c,直到為0
#include<stdio.h>
int main()
{
int a = 0;
int b = 0;
scanf("%d %d",& a, &b);
int c = a%b;
while (c != 0)
{
a = b;
b = c;
c = a%b;
}
printf("c = %d\n", b);
return 0;
}