C语言求公约数问题!
发布网友
发布时间:2024-10-23 21:31
我来回答
共2个回答
热心网友
时间:2024-10-24 14:54
题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
1.程序分析:利用辗除法。
2.程序源代码:
main()
{
int a,b,num1,num2,temp;
printf("please input two numbers:\n");
scanf("%d,%d",&num1,&num2);
if(num1 { 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);
}
还有一种办法更简单
就是利用辗减法
main()
{
int a,b,num1,num2,temp;
printf("please input two numbers:\n");
scanf("%d,%d",&a,&b);
num1=a;
num2=b;
while(a!=b) /*利用辗减法,直到b为0为止*/
{
if(a<b)
{ temp=a;
a=b;
b=temp;
}
a=a-b;
}
printf("gongyueshu:%d\n",a);
printf("gongbeishu:%d\n",num1*num2/a);
}
热心网友
时间:2024-10-24 14:54
int main()
{
int a,b,c,f;
scanf("%d,%d",&a,&b);
while (a!=b)
{
if (b>a)
{
f=a;
a=b;
b=f;
}
c=a-b;
if (c>b)
{
f=b;
b=c;
c=f;
}
a=b;
b=c;
}
printf("result=%d\n",b);
return 0;
}
热心网友
时间:2024-10-24 14:54
题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
1.程序分析:利用辗除法。
2.程序源代码:
main()
{
int a,b,num1,num2,temp;
printf("please input two numbers:\n");
scanf("%d,%d",&num1,&num2);
if(num1 { 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);
}
还有一种办法更简单
就是利用辗减法
main()
{
int a,b,num1,num2,temp;
printf("please input two numbers:\n");
scanf("%d,%d",&a,&b);
num1=a;
num2=b;
while(a!=b) /*利用辗减法,直到b为0为止*/
{
if(a<b)
{ temp=a;
a=b;
b=temp;
}
a=a-b;
}
printf("gongyueshu:%d\n",a);
printf("gongbeishu:%d\n",num1*num2/a);
}
热心网友
时间:2024-10-24 14:54
int main()
{
int a,b,c,f;
scanf("%d,%d",&a,&b);
while (a!=b)
{
if (b>a)
{
f=a;
a=b;
b=f;
}
c=a-b;
if (c>b)
{
f=b;
b=c;
c=f;
}
a=b;
b=c;
}
printf("result=%d\n",b);
return 0;
}
热心网友
时间:2024-10-24 14:54
题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
1.程序分析:利用辗除法。
2.程序源代码:
main()
{
int a,b,num1,num2,temp;
printf("please input two numbers:\n");
scanf("%d,%d",&num1,&num2);
if(num1 { 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);
}
还有一种办法更简单
就是利用辗减法
main()
{
int a,b,num1,num2,temp;
printf("please input two numbers:\n");
scanf("%d,%d",&a,&b);
num1=a;
num2=b;
while(a!=b) /*利用辗减法,直到b为0为止*/
{
if(a<b)
{ temp=a;
a=b;
b=temp;
}
a=a-b;
}
printf("gongyueshu:%d\n",a);
printf("gongbeishu:%d\n",num1*num2/a);
}
热心网友
时间:2024-10-24 14:54
int main()
{
int a,b,c,f;
scanf("%d,%d",&a,&b);
while (a!=b)
{
if (b>a)
{
f=a;
a=b;
b=f;
}
c=a-b;
if (c>b)
{
f=b;
b=c;
c=f;
}
a=b;
b=c;
}
printf("result=%d\n",b);
return 0;
}