题目:求两个数的最大公约数
分析:解决本题的基本方法有两种:
(1)试探法(也叫枚举法):即所有的数字一一试验,看是否符合同时能整除两个数的条件,找出最大。
(2)辗转相除法:具体参见之前的博客https://blog.csdn.net/melody_1016/article/details/82527391
代码:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
//求两个数的最大公约数
int a, b,t;
scanf("%d %d", &a, &b);
for (int i = 1; i <= a&&i <= b; i++)
{
if (a%i == 0 && b%i == 0)
{
t = i;
}
}
printf("最大公约数是%d\n", t);
system("pause");
return 0;
}
函数写法:
int MaxFactor(int x, int y)
{
int max = 1;
int i = 2;
while (i <= x&&i <= y)
{
if (x%i == 0 && y%i == 0)
{
max = i;
}
i++;
}
return max;
}