求最大公约数
用辗转相除法求最大公约数
步骤:
1,将两个正整数分别作为被除数(dividend)和除数(divider)。
2.将被除数除以除数,得到余数(remainder)
3.若余数不为0,则除数转为被除数,余数转为除数,继续第二步
4.若余数为0,则结束循环,使余数为0的除数就是最大公约数
#include<stdio.h>
int gcd(int dividend,int divider); //求最大公约数函数声明
int main()
{
int dividend,divider;
scanf("%d%d",÷nd,÷r); //从键盘输入两个正整数
printf("%d\n",gcd(dividend,divider)); //输出最大公约数
return 0;
}
int gcd(int dividend,int divider) //求最大公约数函数定义
{
int remainder;
if(dividend<=0||divider<=0)
{
printf("Error Input!\n"); //输出信息提示
return 0;
}
remainder=dividend%divider; //求第一次的余数
while(remainder)
{
dividend=divider; //本次的除数作为下一次的被除数
divider=remainder; //本次的余数作为下一次的除数
remainder=dividend%divider; //求新的余数
}
return divider;
}