Ⅰ c语言程序编写:计算两个数的最大公约数
#include<stdio.h>
#include <conio.h>
void main()
{
int m,n,k;
while (1)
{
printf("输入m和n(m>n):");
scanf("%d %d",&m,&n);
if(m<n)
printf("输入错误,请重新输入\n");
else break;
}
while (1)
{
k=m%n;
if(k==0)
break;
m=n;
n=k;
}
printf("m和n的最大公约数是:%d",n);
getch();
}
Ⅱ c语言求最大公约数
1、新建一个C语言源程序,这里使用Visual C++6.0的软件:
Ⅲ C语言程序:求两个数的最大公约数和最小公倍数。
#include<iostream>
using
namespace
std;
int
f(int
p,int
q);
int
g(int
u,int
v,int
w);
int
main()
{
int
x,y,m,n;
cout<<"请输入两个整数"<<endl;
cin>>x>>y;
m=f(x,y);
n=g(x,y,m);
cout<<"这两个数的最大公约数是"<<m<<"\n这两个数的最小公倍数是"<<n<<endl;
}
int
f(int
p,int
q)
{
int
r;
p>q?r=q:r=p;
//找两个数中最小的最小的
for(;p%r!=0||q%r!=0;r--);
return
r;
}
int
g(int
u,int
v,int
w)
//w是最大公约数
{
int
g;
g=u*v/w;
return
g;
}
Ⅳ c语言编程,求两个数的最大公约数和最小公倍数
这样写:
#include
void
main()
{
int
m,n,i,r,temp;
printf("请输入第一个数的值:
");
scanf("%d",&m);
printf("请输入第二个数的值:
");
scanf("%d",&n);
if(n>m)
{
temp=m;
m=n;
n=temp;
}
i=n;
while(i%m!=0)
{
i=i+n;
}
printf("最小公倍数是:%d
\n",i);
r=m%n;
while(r!=0)
{
m=n;
n=r;
r=m%n;
}
printf("最大公约数是:%d
\n",n);
}
图:
Ⅳ c语言编程求输入两个数的最大公约数和最小公倍数,怎么做
输入两个正整数m和n,求其最大公约数和最小公倍数.用辗转相除法求最大公约数 算法描述:m对n求余为a,若a不等于0 则 m 0)
{
m_cup = m;
#include<stdio.h>
voidmain()
{
intm,n,m1,n1,t;
printf("请输入两个数(用空格隔开):");
scanf("%d%d",&m,&n);
if(n>m)
{
t=m;
m=n;
n=t;
}
m1=m;
n1=n;
while(n!=0)
{
t=m%n;
m=n;
n=t;
}
printf("%d和%d的最大公约数是:%d
",m1,n1,m);
printf("最小公倍数是:%d
",m1*n1/m);
}
Ⅵ C语言编程中,求两个数的最大公约数和最小公倍数算法是怎样的
#include
main()
{
int
m,n,r;
printf("请输入两个数字:");
scanf("%d%d",&m,&n);
while(r!=0)
{
m=n;
n=r;
r=m%n;
}
printf("两个数字的最大公约数为%d\n",n);
getch();
}
这个算法就是把你初中算最大公约数的过程给程序化了。。你用以前的方法在纸上算算最大公约数
再对照WHILE里面的算法
就能明白咋回事了。。
Ⅶ 大一C语言,问题,编程,输入两个数。求两个数的最大共约数。
算法:辗转取余。
比如,求12和15的最大公约数,比较大的数对比较小的数进行取余。15%12=3,12%3=0,所以3就是它们的最大公约数。具体做法是,你输两个整数m和n,假设m是这两个数中比较大的一个,m对n进行取余,如果结果不为0,把原来n的值赋给m,把m对n取余得到的结果赋给n,这样就得到了一组新的m和n的值。用这新的m再次对新的n进行取余,如果结果不为0,那么把这个n的值赋给m,把这次m对n取余得到的结果赋给n,……直到m%n=0,此时m的值就是原来m、n的最大公约数。最小公倍数=原来的连个数的乘积除以最大公约数。
#include
<stdio.h>
void
main()
{
int
p,r,m,n;
printf("请输入两个正整数m,n:");
scanf("%d%d",&n,&m);
p=n*m;
if(m<n)
{
r=m;
m=n;
n=r;
}
while(n!=0)
{
r=m%n;
m=n;
n=r;
}
printf("它们的最大公约数为:%d\n",m);
printf("它们的最小公约数为:%d\n",p/m);
}
Ⅷ c语言求两个数的最大公约数
求两个数的最大公约数就是用短除法求出这两个数的公因数,最大公因数就是这两个数的最大公约数。
Ⅸ 如何用C语言求两个数的最大公约数的三种算法
1、相减法
#include<stdio.h>
int
main()
{
int
a,b;
int
c=0;//计数器
while(1)//循环判断的作用
{
printf("输入两个数字求最大公约数:");
scanf("%d%d",&a,&b);
while(a!=b)
{
if(a>b)
a=a-b;
else
b=b-a;
c++;
}
printf("最大公约数是:%d\n",a);
printf("%d\n",c);
}
return
0;
}
运行效果:
2、辗转相除法:
#include<stdio.h>
int
a,b,temp;
int
Division(){
printf("请输入两个数(a,b):\n");
scanf("%d,%d",&a,&b);
if(a<b){
temp=a;
a=b;
b=temp;
}
while(a%b!=0){
temp=a%b;
a=b;
b=temp;
}
printf("最大公约数为:%d\n",b);
return
0;
}
3、穷举法
#include<stdio.h>
int
main()
{
int
a,b,c;
int
d=0;//计数器
while(1)
{
printf("输入两个数字求最大公约数:");
scanf("%d%d",&a,&b);
c=(a>b)?b:a;//三目运算符
while(a%c!=0||b%c!=0)
{
c--;
d++;
}
printf("最大公约数是:%d\n",c);
printf("%d\n",d);
}
return
0;
}
Ⅹ c语言编程:输入两个正整数,求最大公约数和最小公倍数
#include
voidmain(){
inta,b,n1,n2,t;
while(true)
{
printf("任意输入两个正整数: ");
scanf("%d%d",&n1,&n2);
if(n1
{
t=n1;
n1=n2;
n2=t;
}
a=n1;
b=n2;
while(b!=0){/*利用辗除法,直到b为0为止*/
t=a%b;
a=b;
b=t;
}
printf("最大公约数为:%d ",a);
printf("最小公倍数为:%d ",n1*n2/a);
}}
(10)c语言编程求两个数的公约数扩展阅读
C语言求最大公约数辗转相除法
#include<stdio.h>
intgcd(intm,intn);//将辗转相除的过程封装为函数,使主函数结构清晰。
intmain(void)
{
inta,b;
while(~scanf("%d%d",&a,&b)){//多组数据输入时的方式之一与while(scanf("%d%d",&a,&b)!=EOF)用途相同
printf("%d ",gcd(a,b));
return0;
}
intgcd(intm,intn)
{
returnn?gcd(n,m%n):m;//此函数将辗转相除的过程以递归的形式呈现,简化程序属于常规套路。
}