dota2末日使者野怪技能:输入两个正整数M和N,求其最大公约数和最小公倍数.

来源:百度文库 编辑:中科新闻网 时间:2024/05/10 12:17:55
这是C语言中的一题,希望高手指教!

#include<stdio.h>
void main()
{
int m(int x,int y);
int a,b,t,p,q;
printf("请输入两个正整数:\n");
scanf("%d,%d",&p,&q);
if (p==q)
{
printf("最大公约数和最小公倍数均为:%d\n",p);
}
else if(p<q)
{
t=p;
p=q;
q=t;
a=m(p,q); //调用一个函数
b=p*q/a ; //两个数的乘积等于它们最大公约数和最小公倍数的乘积
printf("最大公约数为:%d\n",a);
printf("最小公倍数为:%d\n",b);
}
else
{
a=m(p,q); //同上
b=p*q/a;
printf("最大公约数为:%d\n",a);
printf("最小公倍数为:%d\n",b);
}
}
//用辗转相除法求最大公约数
# include<math.h>
int m(int x,int y)
{
int z;
while(y!=0)
{
z=x%y;
x=y;
y=z;
}
return(x) ;
}

/*
* GongYueShu.c
*
* Created on: 2013-3-7
* Author: Administrator
*/
#include <stdio.h>
int main(){
//定义变量,用max存储最大公约数
int a,b,maxNum,minNum,i,j,max=0;
//提示用户输入
printf("请输入两个正整数:\n");
fflush(stdout);
//接受用户的输入
scanf("%d%d",&a,&b);
//判断a和b的大小关系
if(a>b){
//把最大值和最小值保存到maxNum和minNum中
maxNum=a;
minNum=b;
}else{
maxNum=b;
minNum=a;
}
for(i=1;i<=minNum;i++){
//寻找i能同时和a求余=0,和b求余=0
if(a%i==0 && b%i==0){
max=i;
}
}
printf("%d,%d最大公约数为:%d\n",a,b,max);
for(j=maxNum;j<=a*b;j++){
//寻找j能同时和a求余=0,和b求余=0
if(j%a==0 && j%b==0){
printf("%d,%d最小公倍数为:%d",a,b,j);
break;
}
}
return 0;
}

你想什么语言,问问题搞清楚点行吗?人家回答也辛苦的啊。

这也拿出来问,自己不多看看书,问别人是不会有进步的