這題好不容易寫出來(( 汗
一開始我就把2~1000000的質數找出來
我把求出來的質數放在一個prime_record的陣列裡,再開出1000001個陣列(prime)來判斷此數是否為質數
再來2~1000000一個一個求出他的質因數
一直去除prime_record裡的質數,直到那一個數(temp)變程式一個質數,且大於1
int count_factors[1000001];
int count=0;
for(int i=2;i<=1000000;i++)
{
int temp=i;
int j=0;
while(temp>1)
{
if(prime[temp])
{
count++;
break;
}
if(temp%prime_record[j] == 0)
{
temp/=prime_record[j];
count++;
}
else
j++;
}
count_factors[i]=count;
}
想請教一下有其他比較好的方法嗎?
可以提供一下嗎?! 謝謝!!
這題好不容易寫出來(( 汗
一開始我就把2~1000000的質數找出來
我把求出來的質數放在一個prime_record的陣列裡,再開出1000001個陣列(prime)來判斷此數是否為質數
再來2~1000000一個一個求出他的質因數
一直去除prime_record裡的質數,直到那一個數(temp)變程式一個質數,且大於1
int count_factors[1000001];
int count=0;
for(int i=2;i<=1000000;i++)
{
int temp=i;
int j=0;
while(temp>1)
{
if(prime[temp])
{
count++;
break;
}
if(temp%prime_record[j] == 0)
{
temp/=prime_record[j];
count++;
}
else
j++;
}
count_factors[i]=count;
}
想請教一下有其他比較好的方法嗎?
可以提供一下嗎?! 謝謝!!
用動態歸納法 DP