恰有20个因数的最小自然数是多少?
答案是这样的,不理解,有明白的讲解一下?
解:因为20=2×10=4×5=2×2×5,因此,具有 20个因数的自然数是 3与9个2
的乘积,即:3×2×2×2×2×2×2×2×2×2=1536;或者是3个3与4 个2的乘积,
即: 3×3×3×2×2×2×2=432; 或者是3,5 与4个2的乘积,即: 3×5×2×2×2
×2=240,因此最小的为 240.
我向高手“我不是他舅”请教过了,现在按我的理解给你解释:
20=2×10,2-1和10-1,就是1和9,是用来做为2或3或5等质数的指数,就是2^1*3^9或是2^9*3^1,这里因求最小数,所以用较小的式子:2^9*3^1,这就是“具有 20个因数的自然数是 3与9个2”的来历,
同理,20=4*5,4-1和5-1,就是3和4,分别做2和3的指数,这里采用2^4*3^3,从而有“或者是3个3与4 个2的乘积”之说,
最后,是因为 20=5*2*2,有4,1,1做2、3、5的指数,就是2^4*5^1*3^1,从而有3*5*4个2的方案,因为这三种方式中,3*5*2^4=240最小,所以就取这个。
#include
void main()
{
int i=0,j=0,count=2,t=0;
int a[20]={0};
for(i=240;i<=1000;i++)
{
for(j=i/2;j>=2;j--)
if(i%j==0)
count++;
if(count==20)
{//cout<
break;
}
else count=2;
}
for(j=1;j<=i;j++)
if(i%j==0)
a[t++]=(i/j);
for(i=0;i<20;i++)
cout<
} 这是程序,下面的是结果。的确是240
1*2*4*8*16*3*6*12*24*48*5*10*20*40*80*15*30*60*120*240=6.3403380965376*10^23
欧拉因子
f=2^a3^b5^c……(质数)^k
2^6