c语言编程:输入两个正整数,求最大公约数和最小公倍数

 我来答
问明6E
高粉答主

2019-05-20 · 每个回答都超有意思的
知道答主
回答量:279
采纳率:100%
帮助的人:12.4万
展开全部

#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;

}

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

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命令。

百度网友faadf46
高粉答主

2019-08-13 · 说的都是干货,快来关注
知道答主
回答量:4556
采纳率:0%
帮助的人:68万
展开全部

1、新建一个工程和.c文件 ,输入头文件和主函数。

2、定义变量类型。

3、接下来需要输入a和b。

4、用一个if 语句去判断这两个数是否大于1。

5、用while 语句去求得最大公倍数和最小公约数。

6、输出最大公约数和最小公倍数。

7、编译,运行得到最后的结果。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱教育爱学习
高粉答主

2019-10-26 · 学而不思则罔,思而不学则殆
爱教育爱学习
采纳数:384 获赞数:112722

向TA提问 私信TA
展开全部

#include

voidmain(){

inta,b,n1,n2,t;

while(true)

{

printf("任意输入两个正整数:\n");

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\n",a);

printf("最小公倍数为:%d\n\n",n1*n2/a);

}}

扩展资料

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\n",gcd(a,b));

return0;

}

intgcd(intm,intn)

{

returnn?gcd(n,m%n):m;//此函数将辗转相除的过程以递归的形式呈现,简化程序属于常规套路。

}

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
khtaaa
推荐于2018-05-18 · TA获得超过33.1万个赞
知道顶级答主
回答量:15.6万
采纳率:81%
帮助的人:3.5亿
展开全部
main()
{
int p,r,n,m,temp;
printf("Please enter 2 numbers n,m:");
scanf("%d,%d",&n,&m);//输入两个正整数.
if(n<m)//把大数放在n中,把小数放在m中.
{temp=n;
n=m;
m=temp;
}
p=n*m;//P是原来两个数n,m的乘积.
while(m!=0)//求两个数n,m的最大公约数.
{
r=n%m;
n=m;
m=r;
}
printf("Its MAXGongYueShu:%d\n",n);//打印最大公约数.
printf("Its MINGongBeiShu:%d\n",p/n);打印最小公倍数.
基本原理如下:
用欧几里德算法(辗转相除法)求两个数的最大公约数的步骤如下:
先用小的一个数除大的一个数,得第一个余数;
再用第一个余数除小的一个数,得第二个余数;
又用第二个余数除第一个余数,得第三个余数;
这样逐次用后一个数去除前一个余数,直到余数是0为止。那么,最后一个除数就是所求的最大公约数(如果最后的除数是1,那么原来的两个数是互质数)。
例如求1515和600的最大公约数,
第一次:用600除1515,商2余315;
第二次:用315除600,商1余285;
第三次:用285除315,商1余30;
第四次:用30除285,商9余15;
第五次:用15除30,商2余0。
1515和600的最大公约数是15。

两个正整数的最小公倍数=两个数的乘积÷两个数的最大公约数
由于两个数的乘积等于这两个数的最大公约数与最小公倍数的积。这就是说,求两个数的最小公倍数,可以先求出两个数的最大公约数,再用这两个数的最大公约数去除这两个数的积,所得的商就是两个数的最小公倍数。
例 求105和42的最小公倍数。
因为105和42的最大公约数是21,
105和42的积是4410,4410÷21=210,
所以,105和42的最小公倍数是210。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhiyyao
2016-06-15 · TA获得超过1909个赞
知道小有建树答主
回答量:645
采纳率:57%
帮助的人:388万
展开全部
#include <stdio.h>

void main ()

{

 int m,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\n",m1,n1,m);

 printf ("最小公倍数是:%d\n",m1*n1/m);

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(16)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式