c语言最大公约数和最小公倍数怎么表示
#include
int main()
{
int a,b,c,m,t;
printf("请输入两个数:
");
scanf("%d%d",&a,&b);
if(a<b)
{
t=a;
a=b;
b=t;
}
m=a*b;
c=a%b;
while(c!=0)
{
a=b;
b=c;
c=a%b;
}
printf("最大公约数是:
%d
",b);
printf("最小公倍数是:
%d
",m/b);
}
扩展资料
算法思想
利用格式输入语句将输入的两个数分别赋给 a 和 b,然后判断 a 和 b 的关系,如果 a 小于 b,则利用中间变量 t 将其互换。
再利用辗转相除法求出最大公约数,进而求出最小公倍数。最后用格式输出语句将其输出。
#include是在程序编译之前要处理的内容,称为编译预处理命令。编译预处理命令还有很多,它们都以“#”开头,并且不用分号结尾,所以是c语言的程序语句。
C语言经典例子之求其最大公约数和最小公倍数
最大公约数和求最小公倍数
1、对两个正整数a,b如果能在区间[a,0]或[b,0]内能找到一个整数temp能同时被a和b所整除,则temp即为最大公约数。
2、对两个正整数a,b,如果若干个a之和或b之和能被b所整除或能被a所整除,则该和数即为所求的最小公倍数。
穷举法求两数的最大公约数
int divisor(int a,int b)
{
int temp;//定义义整型变量
temp=(a>b)?b:a;//采种条件运算表达式求出两个数中的最小值
while(temp>0){
if(a%temp==0&&b%temp==0)//只要找到一个数能同时被a,b所整除,则中止循环
break;
temp--;//如不满足if条件则变量自减,直到能被a,b所整除
}
return temp;//返回满足条件的数到主调函数处
}
//穷举法求两数的最小公倍数
int multiple(int a,int b)
{
int p,q,temp;
p=(a>b)?a:b;//求两个数中的最大值
q=(a>b)?b:a;//求两个数中的最小值
temp=p;//最大值赋给p为变量自增作准备
while(1){//利用循环语句来求满足条件的数值
if(p%q==0)
break;//只要找到变量的和数能被a或b所整除,则中止循环
p+=temp;//如果条件不满足则变量自身相加
}
return p;
}
扩展资料:
while使用示例
C++
int a=NULL;
while(a<10)
{
a++;//自加
if(a>5)//不等while退出循环,直接判断循环
{
break;//跳出循环
}
}
结果:结束后a的值为6。
Javascript
下面的例子定义了一个循环程序,这个循环程序的参数i的起始值为0。该程序会反复运行,直到i大于10为止。i的步进值为1。
<html>
<body>
<script type="text/javascript">
var i=0
while(i<=10)
{document.write("The number is"+i);
document.write("<br/>");
i=i+1;}
</script>
</body>
</html>
结果
The number is0
The number is1
The number is2
The number is3
The number is4
The number is5
The number is6
The number is7
The number is8
The number is9
The number is10
参考资料:
百度百科——while
#include <stdio.h>
int main()
{
int a,b,c,m,t;
printf("请输入两个数:
");
scanf("%d%d",&a,&b);
if(a<b)
{
t=a;
a=b;
b=t;
}
m=a*b;
c=a%b;
while(c!=0)
{
a=b;
b=c;
c=a%b;
}
printf("最大公约数是:
%d
",b);
printf("最小公倍数是:
%d
",m/b);
}
扩展资料
算法思想
利用格式输入语句将输入的两个数分别赋给 a 和 b,然后判断 a 和 b 的关系,如果 a 小于 b,则利用中间变量 t 将其互换。
再利用辗转相除法求出最大公约数,进而求出最小公倍数。最后用格式输出语句将其输出。
#include<stdio.h>是在程序编译之前要处理的内容,称为编译预处理命令。编译预处理命令还有很多,它们都以“#”开头,并且不用分号结尾,所以是c语言的程序语句。
辗转相除法求最大公约数和最小公倍数
有两整数a和b:
① a%b得余数c
② 若c=0,则b即为两数的最大公约数
③ 若c≠0,则a=b,b=c,再回去执行①
辗转相除法求最大公约数和最小公倍数
有两整数a和b:
① a%b得余数c
② 若c=0,则b即为两数的最大公约数
③ 若c≠0,则a=b,b=c,再回去执行①
例如求27和15的最大公约数过程为:
27÷15 余1215÷12余312÷3余0因此,3即为最大公约数
#include<stdio.h>
void main() /* 辗转相除法求最大公约数 */
{
int m, n, a, b, t, c;
printf("Input two integer numbers:\n");
scanf("%d%d", &a, &b);
m=a; n=b;
while(b!=0) /* 余数不为0,继续相除,直到余数为0 */
{ c=a%b; a=b; b=c;}
printf("The largest common divisor:%d\n", a);
printf("The least common multiple:%d\n", m*n/a);
}
输入两个正整数m和n,求其最大公约数和最小公倍数.用辗转相除法求最大公约数算法描述:m对n求余为a,若a不等于0则m最小公倍数=两个数的积/最大公约数#includeintmain(){intm,n;intm_cup,n_cup,res;/*被除数,除数,余数*/printf("Entertwointeger:\n");scanf("%d%d",&m,&n);if(m>0&&n>0){m_cup=m;n_cup=n;res=m_cup%n_cup;while(res!=0){m_cup=n_cup;n_cup=res;res=m_cup%n_cup;}printf("Greatestcommondivisor:%d\n",n_cup);printf("Leasecommonmultiple:%d\n",m*n/n_cup);}elseprintf("Error!\n");return0;}
C语言编程如何实现求两个整数的最大公约数?
以下是C语言实现求两个整数的最大公约数的示例代码:在上述代码中,我们定义了一个名为gcd的函数,用于求解两个整数的最大公约数。该函数使用递归的方式实现欧几里得算法。在主函数中,我们首先从用户输入中读取两个整数,然后调用gcd函数计算它们的最大公约数,并将结果输出到控制台。♡♡ ...
c语言求n个数的最大公约数和最小公倍数求个程序 刚入门不要太难的...
include "stdio.h"int main(int argc,char *argv[]){int a[5]={12,16,24,28,36},x,i,t,r;for(t=a[0],i=1;i<5;i++){x=a[i];while(r=t%x)t=x,x=r;t=x;}printf("The GCD is %d\\n",x);for(t=a[0],i=1;i<5;i++){x=a[i];while(x%t)x+=a[i];t=x...
C语言中用两个函数求最大公约数和最小公倍数,用主函数调用这两个函数...
先编写好最大公约数和最小公倍数的函数,如下:intgcd(inta,b)\/\/求最大公约数函数{if(a%b==0)returnb;elsereturngcd(b,a%b);\/\/辗转相除法}intlcm(inta,b)\/\/求最小公约数函数{intx;x:=gcd(a,b);\/\/调用gcd()函数returna
C语言最大公约数与最小公倍
void fun(int m, int n, int *p, int *q){ int k=m<n?m:n; while(m%k!=0 || n%k!=0) k--; *p=k; *q=m\/k*n;}主函数自己写一下. p是最大公约数指针, q是最小公倍数指针.
c语言函数调用求最大公约数和最小公倍数
include<stdio.h> int a;int _Y(int x,int y);int main(){ int a,b,c,d;printf(“请输入数字:”);scanf("%d,%d",&c,&d);\/\/此处注意在输出的时候数字之间要打都好,不然输出结果错误 b=_Y(c,d);a=c*d\/b;printf(“最大公约数为:%d\\n”,b);printf(“最小公倍数为:%d\\n...
C语言 最大公约数和最小公倍数
\/*利用辗转相除法求最大公因数*\/ include "stdio.h"int Gcd(int m,int n)\/*最大公约数*\/ { int t;if(m<n){ t = n,n = m,m = t;} if(n == 0) return m;else return Gcd(n,m%n);} void main(){ int A,B,gys,gbs;scanf("%d %d",&A,&B);gys=Gcd(A,B);gbs=...
C语言程序设计如何求最大公约数?
三、取两个数a,b中的较小值存放到变量n中。代码:int n=a;if (n>b)n=b。四、从两个数a和b中的较小数开始逐个减小1,寻找能整除a和b的整数。第一个找到的整数即整数a和b的最大公约数。五、点击工具栏的如图图标,对源程序编译运行。六、测试输入4,6,得到最大公约数2。程序是正确的...
c语言问题:输入两个正整数m和n,
输入两个正整数m和n,求其最大公约数和最小公倍数。解:程序:include <stdio.h> int main(){ int num1, num2, t,p;printf("请输入两个正整数:");scanf("%d,%d", &num1, &num2);\/\/7,8 p = num1*num2;while (t = num1%num2)\/\/7 1 0,循环结束 { num1 = num...
C语言编程:输入两个正整数,输出其中最大公约数和最小公倍数。
include<stdio.h> int main(){ int a,b,num1,num2,temp;printf("please input two number:\\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...
c语言程序题,输入两个正整数m和n,求其最大公约数和最小公倍数。
输入两个正整数m和n,求其最大公约数和最小公倍数,可以参考下面的代码:include <stdio.h> void main (){ int m, n, p, q;printf ("请输入整数m,n的值:\\n");scanf ("%d, %d", &m, &n);p=m*n;while (n!=0){ q=m%n;m=n;n=q; \/\/这段是求最大公约数的算法 } ...
荡伊奥米: void fun(int m, int n, int *p, int *q) { int k=m<n?m:n; while(m%k!=0 || n%k!=0) k--; *p=k; *q=m/k*n; }主函数自己写一下. p是最大公约数指针, q是最小公倍数指针.
襄垣县15947693071: c语言中如何求两个数的最大公约数和最小公倍数 - ?
荡伊奥米: #include <stdio.h> 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里面的算法 就能明白咋回事了..
襄垣县15947693071: C语言求最小公倍数和最大公约数 - ?
荡伊奥米: 第二个while里面 if后面多了个分号, 还有两个break也要放到对应的if里面 还有j = j + j;也不对,因为j的值一直在变.应该用一个数保存最开始的j值 修改后代码 #include <stdio.h> int main() {int i,j,k,m,n;printf ("请输入两个数");scanf ("...
襄垣县15947693071: C语言程序设计:求两个数的最小公倍数和最大公约数? - ?
荡伊奥米: 你好像没有理解最小公倍数,9与6的最大公约数最先公倍数分别是3和18,,所以写法没错;for(;!(j%m==0&&j%n==0);j++);的意思是j从m、n中较大的一个数开始,看j是否即能被m整除又能被n整除,不然一直自加.比如j=9;(9%9==0&&9%6==0)为假,加一个!变为真,所以j继续自加,j=18时括号变为真,加上!变假.最后得18......
襄垣县15947693071: C语言如何求两个数的最大公约数和最小公倍数 - ?
荡伊奥米: 假设gcd(x,y)表示x和y的最大公约数①最大公约数用递归若 x%y =0,则gcd(x,y)=y若 x%y≠0,则gcd(x.y)=gcd(y,x%y)②最小公倍数=x*y/gcd(x,y)
襄垣县15947693071: c语言怎么求两个整数的最大公约数和最小公倍数' - ?
荡伊奥米: #include int main() { int p,r,n,m,temp; printf("请输入两个正整数n,m:"); scanf("%d%d,",&n,&m); if (n{ 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; }
襄垣县15947693071: 求最大公约数和最小公倍数用c语言 - ?
荡伊奥米: 输入两个正整数m和n, 求其最大公约数和最小公倍数.用辗转相除法求最大公约数 算法描述: m对n求余为a, 若a不等于0 则 m 否则 n 为最大公约数最小公倍数 = 两个数的积 / 最大公约数 #include int main() { int m, n; int m_cup, n_cup, res; ...
襄垣县15947693071: 求多个数的最小公倍数,最大公约数 C语言 - ?
荡伊奥米:[答案] #include int gcd(a,b) { if b0 return gcd(b,a mod b); else return a; } void main(){ int a,b,c,d; scanf("%d",&a); do{ scanf("%d",&b); c=a*b; a=gcb(a,b); d=c/a; }while(b!=0) printf("最大公约数%d最小公倍数%d",a,d); } 我已经很久没用C了,我...
襄垣县15947693071: 如何用C语言来编写:求最大公约数和最小公倍数程序 - ?
荡伊奥米: #include void main() { int i,j,m,n,t; printf("请输入两个正整数: "); scanf("%d,%d",&m,&n); if(mfor(i=n;i>=1;i--) if(m%i==0&&n%i==0) {j=m*n/i;break;} printf("%d和%d的最大公约数是%d,%d和%d的最小公倍数是%d.",m,n,i,m,n,j); }
襄垣县15947693071: C语言 求两个整数的最大公约数和最小公倍数 用while,if - ?
荡伊奥米:[答案] //输入的两个数请用空格分隔,如:12 18 #include int main() { int p,r,n,m,temp; printf("请输入两个正整数n,m:"); scanf("%d%d,",&n,&m); if (n