输入两个正整数,求其最大公约数
代码如下,不知错误在哪儿,寻求各位的帮助,谢谢!!!!#include<stdio.h>
int main()
{
int a,b,n;
printf("输入两个正整数");
scanf("%d%d",&a,&b);
if(a>0&&b>0)
{
if(a>b)
{
n=b;
if(b%n==0&&a%n==0)
{
printf("%d\n",n);
}
}
else
{
n=a;
if(b%n==0&&a%n==0)
{
printf("%d\n",n);
}
}
n--;
}
}
你可以用辗转相除法算算,百度最大公约数,百科里边有详细介绍 #include<stdio.h>
int main()
{
int a,b,n=1,c;//1435
printf("输入两个正整数\n");
scanf("%d,%d",&a,&b);//两个数用逗号分开
if(a>0&&b>0)
{
if(a>b)
{
if (a%b==0)
{
printf("%d和%d的最大公约数是:%d\n",a,b,b);
}
else
{
n=b;
do
{
c=n;
n=a%n;
if (n==0)
{
printf("%d和%d的最大公约数是:%d\n",a,b,c);
n=0;
}
else if (n==1)
{
printf("%d和%d没有公约数!",a,b);
n=0;
}
} while (n);
}
}
else
{
if (b%a==0)
{
printf("%d和%d的最大公约数是:%d\n",a,b,a);
}
else
{
n=a;
do
{
c=n;
n=b%n;
if (n==0)
{
printf("%d和%d的最大公约数是:%d\n",a,b,c);
n=0;
}
else if (n==1)
{
printf("%d和%d没有公约数!",a,b);
n=0;
}
} while (n);
}
}
}
}
这是代码,你可以自己简化一下
页:
[1]