#include<stdio.h>
void main()
{
int m(int x,int y);
int a,b,t,p,q;
printf("請輸入兩個正整數:");
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) ;
}
/*重點解釋第十行以下的程式*/謝謝!!!
uj5u.com熱心網友回復:
輾轉相除法,初學如果不懂這個可以暫時放過,或者搜索有關的博客看看它的數學原理介紹。uj5u.com熱心網友回復:
n=qm+r(歐幾里德演算法)uj5u.com熱心網友回復:
gcd(m,n)利用的就是輾轉相除的原理轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/53524.html
標籤:基礎類
