公约数,亦称"公因数"。它是指能同时整除几个整数的数。如果一个整数同时是几个整数的约数,称这个整数为它们的"公约数";公约数中最大的称为最大公约数。
例如 :4的倍数有 1,2,4;6的倍数有1,2,3,6,那么4和6的约数就是1,2,则最大公约数就是2.
求解思路:
求最大公约数可以使用欧几里得算法,也称辗转相除法。该算法的基本思想是用较大数除以较小数,然后用余数去除除数,再用上一次的除数去除上一次的余数,如此反复,直到余数为零时,当前除数即为最大公约数。
1 #pragma warning(disable:4996) 2 #include<stdio.h> 3 int a = 0, b = 0, c = 0; 4 int main() { 5 printf("输入两个数\n"); 6 7 scanf("%d%d", &a, &b); 8 while (a!=b) 9 { 10 if (a>b) 11 { 12 a = a - b; 13 } 14 else 15 { 16 c=a; 17 a=b; 18 b=c; 19 } 20 } 21 printf("最大公约数是:%d", a); 22 return 0; 23 }
解法二
#pragma warning(disable:4996) #include<stdio.h> #include<stdbool.h> int main() { int a = 0, b = 0; int v = 0; scanf("%d %d", &a, &b); do { if (a > b) { if (a != 0 && b !=0) { a = a % b; printf("a的%d\n", a); printf("b的%d\n", b); if (a == 1) { printf("最大公约数是%d\n", a); break; } } else { printf("最大公约数是%d\n", a); break; } } else { v = a; a = b; b = v; } } while (true); return 0; }
标签:两个,int,else,最大公约数,公约数,printf,include From: https://www.cnblogs.com/tkmi/p/17479919.html