最大素數因子(hdu2136)

2021-07-05 13:08:02 字數 591 閱讀 2730

題意:

每個素數在素數表中都有乙個序號,設1的序號為0,則 2

的序號為1,3的序號為2,5的序號為3,以此類推。現在要求輸出 所

給定的數n的最大質因子的序號,0分析:

應用素數打表法。用flag計算素數的序號,將素數連同他的倍

數一起置為它的素數序號, 從小到大迴圈, 這樣陣列裡存放的序號就

是最大素數因子的序號了。

注意:初始化時令所有數為0,prime[0] = prime[1] = 1。

即a[i]為0是素數,prime[i]為1為素數。改變之後prime[i]為數 i

的最大素數因子的序號 。

**如下:

#include

#include

#include

using namespace std;

const int n = 1000005;

int a[n];

void prime()//用篩選法(分解素數技巧),求n的最大素數因子在素數表的位置;

}}int main()

return 0;

}

hdu2136(篩素數,遍歷預處理)

題目大意 就是找出每個數字的所組成的最大的質因素因子,然後輸出這個質因素因子在質數表裡的位置。比如 6,6的最大的質因素因子為3,3在因素表裡為第2位,故輸出2.有個特殊的,就是1輸出0.思路 利用num 1000005 陣列,從2到1000000的進行遍歷,根據陣列最開始都沒賦值的來處理,比如最開...

素數與最大公因子

定義 素數是大於 1 的正整數,並且除了 1 和它本身外不能被其他正整數整除。素數的數量 不超過 n 的素數大約有 frac 個。素性檢驗 人話 判斷乙個數是否是素數。試除法原理 如果乙個數 x 能整除 n 那麼 frac 也一定能整除 n x 與 frac 中必定有乙個數 le sqrt n 因此...

HDU 1058 素數因子DP

題目 乙個數的因子由2,3,5,7構成,則這個數為 humble number.前20個1 2,3,4,5,6,7,8,9,10,12,14,15,16,18,20,21,24,25,27,輸入n。輸出第n個 humble number.sample input 123 4111213 2122 2...