求兩個數的公倍數,是列不出方程式的,只能是一種演算法。
如果是手工算,先對兩個數分別分解質因數,然後把兩數相乘,再除以它們相同的質因數,就是它們的最小公倍數。
如果是程式設計,方式就更多了,比如:先從1開始,依次試探哪個數能同時整除兩個數,直到試探到兩個數中較小的那個數,此時得到最大試探值,就是兩個數的最大公因數。然後兩數相乘再除以最大公因數,就是它們的最小公倍數。下面是一個程式設計實現:
int main()
{
int a,b,c,maxN,minN;
printf("請輸入兩個整數:\n");
scanf("%d%d",&a,&b);
c = (a > b) ? a : b; //讓c等於兩個數中較大的那一個。
if(b < c)
a = b ; //讓a等於兩數中較小的那一個。
for(int i=1;i<=a;i++)
if(c%i==0 && a%i==0)
maxN = i;
}
minN = a*c/maxN;
printf("最小公倍數是:\n%d\n",minN);
求兩個數的公倍數,是列不出方程式的,只能是一種演算法。
如果是手工算,先對兩個數分別分解質因數,然後把兩數相乘,再除以它們相同的質因數,就是它們的最小公倍數。
如果是程式設計,方式就更多了,比如:先從1開始,依次試探哪個數能同時整除兩個數,直到試探到兩個數中較小的那個數,此時得到最大試探值,就是兩個數的最大公因數。然後兩數相乘再除以最大公因數,就是它們的最小公倍數。下面是一個程式設計實現:
int main()
{
int a,b,c,maxN,minN;
printf("請輸入兩個整數:\n");
scanf("%d%d",&a,&b);
c = (a > b) ? a : b; //讓c等於兩個數中較大的那一個。
if(b < c)
a = b ; //讓a等於兩數中較小的那一個。
for(int i=1;i<=a;i++)
{
if(c%i==0 && a%i==0)
maxN = i;
}
minN = a*c/maxN;
printf("最小公倍數是:\n%d\n",minN);
}