#include
void MaxandMin(long Num1,long Num2)
{
long Temp=0;
if(Num1>=Num2)
{
Temp=Num2;
while((Num1%Num2)!=0)
{
Num2=Num1%Num2;
}
printf("最大公约数为%d\n",Num2);
Temp=( Num1*Temp )/Num2;
printf("最小公倍数为%d\n",Temp);
}
else
{
Temp=Num1;
while((Num2%Num1)!=0)
{
Num1=Num2%Num1;
}
printf("两数的最大公约数为%d\n",Num1);
Temp=( Num2*Temp )/Num1;
printf("两数的最小公倍数为%d\n",Temp);
}
}
int main()
{
long Num1=0,Num2=0;
printf("请输入两个整数:\n");
scanf("%d%d",&Num1,&Num2);
MaxandMin(Num1,Num2);
return 1;
}
题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
1.程序分析:利用辗除法。
2.程序源代码:
main()
{
int a,b,num1,num2,temp;
printf("please input two numbers:\n");
scanf("%d,%d",&num1,&num2);
if(num1 { temp=num1;
num1=num2;
num2=temp;
}
a=num1;b=num2;
while(b!=0)/*利用辗除法,直到b为0为止*/
{
temp=a%b;
a=b;
b=temp;
}
printf("gongyueshu:%d\n",a);
printf("gongbeishu:%d\n",num1*num2/a);
}
#include
main(){
long int a,b,d;
long int m,n,i,j;
double c,h;
c=1;
scanf("%ld%ld",&m,&n);
if(m>=n){
b=m;
d=n;
}else{b=n;d=m;}
for(i=1;i<=(b/2);i++){
if((m%i==0) && (n%i==0) && (m%n!=0) && (n%m!=0)){
c=c*i;
}else{if(b%d==0){c=d;}}
}
h=(m*n/c);
printf("%.0lf %.0lf",c,h);
return 0;
}