尤拉計畫第3題

2021-06-06 03:57:28 字數 1273 閱讀 6927

problem 3:

the prime factors of 13195 are 5,7,13 and 29. 

what is the largest prime factor of the number 600851475143.

問題3:

13195的質因數為5,

7,13和

29。600851475143最大的質因數是多少?

分析:600851475143超過了32位

int所能表示的範圍,這裡用

double。

思路1:因為分解質因數是唯一的,用該數去依次除以每個整數(直到不能除盡這個整數),然後用商再去試除下個整數,直到商等於某個整數。

思路2:用該數先除以

2直到不能除盡,若結果為

1,則返回

2,若不為

1,用商再依次除以大於等於

3的奇數(直到除盡該奇數),當商等於某個奇數時,返回該奇數,即為最大

質因數。

思路3:再思路

2基礎上,可以先將大於等於

3的奇數換成事先計算好的質數表,當有限的質數表除盡而依然未找到最大質因數時,按思路

2順序除以大於質數表中最大數的奇數。

思路2程式如下: 解:

#include #include #include using namespace std;

typedef int int;

typedef char char;

typedef void void;

typedef double double;

#define print printf

#define dprint printf

double maxprimefactor(double n)

if(fabs(n-1.0) < numeric_limits::epsilon())

return 2.0;

//除盡大於等於3的奇數

for(i=3.0; i<=max; i+=2.0)

tem = n / i;

while(fabs(tem - (floor(tem)) < numeric_limits::epsilon()))

if(fabs(n-1.0) < numeric_limits::epsilon())

return i;

} return -1.0;

}int main(int argc, char *argv)

return 0;

}

尤拉計畫第12題

三角形數數列是通過逐個加上自然數來生成的。例如,第7個三角形數是 1 2 3 4 5 6 7 28。三角形數數列的前十項分別是 1,3,6,10,15,21,28,36,45,55,讓我們列舉出前七個三角形數的所有約數 1 1 3 1,3 6 1,2,3,6 10 1,2,5,10 15 1,3,5...

尤拉計畫第21題

記d n 為n的所有真因數 小於n且整除n的正整數 之和。如果d a b且d b a,且a b,那麼a和b構成乙個親和數對,a和b被稱為親和數。例如,220的真因數包括1 2 4 5 10 11 20 22 44 55和110,因此d 220 284 而284的真因數包括1 2 4 71和142,因...

尤拉計畫第22題

在這個46k的文字檔案names.txt 右擊並選擇 目標另存為 中包含了五千多個姓名。首先將它們按照字母序排列,然後計算出每個姓名的字母值,乘以它在按字母順序排列後的位置,以計算出姓名得分。例如,按照字母序排列後,位於第938位的姓名colin的字母值是3 15 12 9 14 53。因此,col...