●三种求最大公约数方法
int GreComdiv(int a,int b) //辗转相除法
{
while(a!=0)
{
if(a<b) //使a大于b
{
int temp=a;
a=b;
b=temp;
}
a=a%b; //不断地求余,直到a==0
}
return b;
}
int GreComdiv(int a,int b) //辗转相减法
{
while(a!=b)
{
if(a<b) //使a大于b
{
int temp=a;
a=b;
b=temp;
}
a=a-b; //不断地相减,直到相等
}
return a;
}
int GreComdiv(int a,int b) //直接寻找法
{
int i=0;
int n=0;
for(i=1;i<=a;i++)
{
//从小到大找到既能整除a又能整除b的i赋值给n
if((a%i==0)&&(b%i==0))
{
n=i;
}
}
return n;
}
int main()
{
int a;
int b;
int n=0;
printf("请输入两个数:");
scanf("%d %d",&a,&b);
n=GreComdiv(a,b);
printf("%d和%d的最大公约数是:%d",a,b,n);
return 0;
}
两个数的最大公约数该怎样去找?(辗转相除法、辗转相减法、直接寻找法)
最新推荐文章于 2023-12-05 20:31:32 发布