您的位置 首页 知识

c语言最大公约数和最小公倍数的求法(求两个整数m和n的最大公约数)

c语言编程求输入两个数的最大公约数和最小公倍数,怎么做?

#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(“它们的最大公约数为:%dn”,n);

printf(“它们的最小公约数为:%dn”,p/n);

return 0;

}

方法二、//穷举法解两个数的最大公约数和最小公倍数

void exp(int num1,int num2){

int x,y,i;

x=num1;

y=num2;

int max=0;//最大公约数

for(i=1;i<=num1;i++)

if(num1%i==0&&num2%i==0)

max=i;

System.out.println(“———————————“);

System.out.println(“利用穷举法计算所得最大公约数为:”+max);

System.out.println(“利用穷举法计算所得最小公倍数为:”+x*y/max);//最小公倍数

System.out.println(“———————————“);

}

扩展资料:

include用法:

#include命令预处理命令的一种,预处理命令可以将别的源代码内容插入到所指定的位置;可以标识出只有在特定条件下才会被编译的某一段程序代码;可以定义类似标识符功能的宏,在编译时,预处理器会用别的文本取代该宏。

插入头文件的内容

#include命令告诉预处理器将指定头文件的内容插入到预处理器命令的相应位置。有两种方式可以指定插入头文件:

1、#include<文件名>

2、#include”文件名”

如果需要包含标准库头文件或者实现版本所提供的头文件,应该使用第一种格式。如下例所示:

#include<math.h>//一些数学函数的原型,以及相关的类型和宏

如果需要包含针对程序所开发的源文件,则应该使用第二种格式。

采用#include命令所插入的文件,通常文件扩展名是.h,文件包括函数原型、宏定义和类型定义。只要使用#include命令,这些定义就可被任何源文件使用。如下例所示:

#include”myproject.h”//用在当前项目中的函数原型、类型定义和宏

你可以在#include命令中使用宏。如果使用宏,该宏的取代结果必须确保生成正确的#include命令。

C语言——求最大公约数和最小公倍数的简单程序?

首先我们输入两个整数m和n,小的数赋值给m,大的数给n。先找n的约数,用一个中间量i代替m,从i开始,如果n%i==0,则说明n,m的最大公约数就是m,否则执行第3步,i自减1,再执行n%i,判断n%i==0,如果是说明n能被i整除;执行第4步,否则再次执行第3步,判断m%i是否等于0,如果是说明n和m能同时被i整除,最大公约数为i;否则执行第3步,最小公倍数比较容易求,只要两数相乘,然后除以最大公约数就可以得到。

c语言编程 我们老师让我们编出3到100之间所有数的最大公约数,怎么编啊,不能用函数,只能用f

  • c语言编程 我们老师让我们编出3到100之间所有数的最大公约数,怎么编啊,不能用函数,只能用for和if
  • for循环控制取值范围,中间有if进行条件设置

c语言 最大公约数与最小公倍数问题,答案总是有百分之二十五错的??

  • #includestdio.hint gcd(int a,int b);int缉沪光疚叱狡癸挟含锚 main(){ double a,b,m,n; scanf("%lf %lf",&a,&b); m=gcd(a,b); n=a*bm; printf("%.0f %.0fn",m,n); return 0;}int gcd(int a,int b){ if(a%b==0) return b; else return gcd(b,a%b);}????在原程序上改,详细点,谢谢!!
  • 这样的试试?#include&缉沪光疚叱狡癸挟含锚lt;stdio.hlong gcd(long a,long b);int main(){ long a,b,m,n; scanf("%ld %ld",&a,&b); m=gcd(a,b); n=a*bm; printf("%.0f %.0fn",m,n); return 0;}long gcd(long a,long b){ if(a%b==0) return b; else return gcd(b,a%b);}

C语言最大公约数

  • 大神看看哪里出错了呢,程序是对的,就是得不出正确的结果来,新手求指教~~#includestdio.hint main(void){ int m,n,r,s,t,c; printf("请输入两个数:"); scanf("%d%d",&m,&n); s=n*m; if(nm) { t=n; n=m; m=t; } while(r=m%n) { m=n; n=r; } c=sn; printf("最大公约数是%d,最小公倍数是%d",n,c); return 0;}*
  • #include "stdio.h"int gcd(int x,int y) 欧几里得辗转相除法求两数的最大的公约数{int m;if(xy)return gcd(y,x);if(x%y!=0)return gcd(y,x%y);else return y;}int main(){int x,y,z;scanf("%d %d %d",&x,&y,&z);printf("%d %d %dn",x,y,gcd(x,y));printf("%d %d %dn",y,z,gcd(y,z));printf("%d %d %dn",z,x,gcd(x,z));printf("%d %d %d %dn",x,y,z,gcd(x,gcd(y,z)));return 0;}

C语言 求最小公倍数和最大公约数

  • #includestdio.hmain(){ int m,n,t,i,a,b; scanf("%d%d",&m,&n); if(nm) { t=m; m=n; n=t; } i=n; while(i=1) { a=m%i; b=n%i; if(a==0&&b==0) { printf("最大公约数为:%dn",i); break; } else if i–; } i=m; while(m=m*n) { a=i%m; b=i%n; if(a==0&&b==0) { printf("最小公倍数为:%dn",i); break; } else if i++; }}为什么我这个他老提示 i 错误,求大神解释,谢谢…..
  • #include stdio.hvoid main(){int x,y,tempGY,tempGB,GY,GB; printf("输入两个正整数(用空格分开),求这两个正整数的最小公倍数和最大公约数:n"); scanf("%d%d",&x,&y); for(int i=1;i=(xy?x:y);i++){if(x%i==0 && y%i==0)GY=i;} for(i=tempGB;i=(xy?y:x);i–){if(i%x==0 && i%y==0)GB=i;}printf("最大公约数是%d,最小公倍数是%dn",GY,GB);getchar();}

初学者:C语言求两个整正数的最大公约数和最小公倍数,怎么错了???

  • #includestdio.hint main(){ int a,b,c,d,e; scanf("%d%d",&a,&b); do { c=a%b; if(c!=0) a=b; b=c; printf("%d%dn",a,b);break;} while(c=0)甫触颠吠郯杜奠森订缉; d=b; e=a*bd; printf("%d%dn",d,e); return 0;}
  • 代码可以加一些注释吗? 我怎么看都不理解你求的过程

哪里错了?C语言求最大公约数

  • #include stdio.hint zxgbs (int n1,int n2){int y,i;for(i=n2;i=1;i–)if (n1%i==0 && n2%i==0){y=i;break;}return y;}main(){int n1,n2,t;scanf("%d %d",&n1,&n2);if (n1n2){ t=n1;n1=n2;n2=t;}printf("zxgbs=%dn",zxgbs(n1,n2));}
  • 你for循环里面应该是i=1吧,你写成i=1了

C语言编程用辗转相除法(不使用递归)实现函数gcd(m,n),其功能为求解正整数m、n的最大公约数。

  • 【输入】输入由键盘输入,只有1行。这一行有两个正整数m,n,代表待求最大公约数的两个数,输入格式为“[m],[n]”【输出】输出共1行,为m和n的最大公约数,输出格式为“The result is [所求最大公约数]!”【数据范围】保证100%的数据在int范围内。跪谢大神们了。
  • #include iostreamusing namespace std;void main() { int m,n,r,temp,a,b,c; cout"请输入两个数:"; cinmn; a=m;b=n; if (mn) { temp=m,m=n,n=temp; } while(n) { r=m%n,m=n,n=r; } a=m;b=m; c=a*b*m; cout"最小公倍数是:"cendl"最大公约数是:"mendl;}

C语言编程用辗转相除法(使用递归调用)实现函数gcd(m,n),其功能为求解正整数m、n的最大公约数。

  • 【输入】输入由键盘输入,只有1行。这一行有两个正整数m,n,代表待求最大公约数的两个数,输入格式为“[m],[n]”【输出】输出共1行,为m和n的最大公约数,输出格式为“The result is [所求最大公约数]!”【数据范围】保证100%的数据在int范围内。谢大神们了
  • 不懂这个数据啊

c语言输入两个正整数m、n求最大公约数和最小公倍数,求大神看看我哪错

  • c语言输入两个正整数m、n求最大公约数和最小公倍数,求大神看看我哪错了,第二个输出不对
  • 把第二个i从最m或n(哪个最大就i=那个)开始就不会出现这种错误了.另外:我都不明白,老是有一大堆人说代码有问题,却只知发图,有些更离谱,只是用手机拍个不清不楚的图.你以为是美女咩??无图无真相呀?!发个代码不会比截图麻烦吧?至少在我而言ctrl+C,Ctrl+V 肯定比截图保存再上传快.有心想帮你也没有多少精神去看你的图中代码呀!再说了肯定是用编译器跑代码比用脑子跑容易发现并定位问题吗,特别是稍微长点的代码!!在此奉告所有那些代码有问题想问人的同学,请直接贴上代码!!!!!!!!!!!!!!!!!!!!!!!!!!!!

C语言 这个程序并没有判断最大公约数吧,不对吧

  • C语言 这个程序并没有判断最大公约数吧,不对吧(1)输入两个正整数m和n,求它们的最大公约数和最小公倍数。(要求文件名:4_1.c) 参考程序: #include stdio.h int main( ) { int x,y,i,m,max; scanf("%d,%d",&x,&y); if(xy) m=x; else m=y; for(i=1;i=m;i++) { if((x%i==0)&&(y%i==0)) max=i; } printf("%dn",max); printf("%dn",x*ymax); return 0; }
  • 判断了。但是我第一次知道最小公倍数是两数之积除以最大公约数,这个程序是对的