第1个回答 2011-06-15
//输入的两个数请用空格分隔,如:12 18
#include <stdio.h>
int main()
{
int p,r,n,m,temp;
printf("请输入两个正整数n,m:");
scanf("%d%d,",&n,&m);
if (n<m)
{
temp=n;
n=m;
m=temp;
}
p=n*m;
while(m!=0)
{
r=n%m;
n=m;
m=r;
}
printf("它们的最大公约数为:%d\n",n);
printf("它们的最小公约数为:%d\n",p/n);
return 0;
}
第2个回答 2011-06-20
我这个要复杂点:
#include<stdio.h>
void main()
{
unsigned long int t,s,i,h;
printf("请输入两个正整数a b\n");
scanf("%d%d",&t,&s);
if(s>t)
{
h=s;
s=t;
t=h;
}
if(t%s==0)
{
printf("最大公约数和最小公倍数分别是:");
printf("%d和%d\n",s,t);
}
else
for(i=t-1;i>=1;i--)
{
if(t%i!=0)
continue;
else
if(s%i!=0)
continue;
else
printf("最大公约数和最小公倍数分别是:%d和%d\n",i,t*s/i);
break;
}
}
第3个回答 2011-06-15
main()
{ int a,b,num1,num2,temp;
printf("please input two numbers:\n");
scanf("%d,%d",&num1,&num2);
if(num1<num2)
{ temp=num1;
num1=num2;
num2=temp;
}
a=num1;b=num2;
while(b!=0)/*利用辗除法,直到b为0为止*/
{
temp=a%b;
a=b;
b=temp;
}
printf("gongyueshu:%d\n",a);
printf("gongbeishu:%d\n",num1*num2/a);
}
第4个回答 2011-06-22
你要的答案吧