1947 Problem C 質因數的個數

2021-09-28 14:08:47 字數 1011 閱讀 7220

時間限制: 1 sec 記憶體限制: 32 mb

提交: 685 解決: 273

求正整數n(n>1)的質因數的個數。

相同的質因數需要重複計算。如120=22235,共有5個質因數。

可能有多組測試資料,每組測試資料的輸入是乙個正整數n,(1對於每組資料,輸出n的質因數的個數。

120

200

5

5

注意1不是n的質因數;若n為質數,n是n的質因數。

先用篩法列印素數表,定義factors結構然後再第乙個素數到sqrt(n)的範圍遍歷,找到了就更新factor,再不斷除,根據演算法筆記的內容,乙個數只有兩種情況,第一種全是sqrt(n)以內的質因子,另外一種只有乙個sqrt(n)以外的質因子 ,所以除完之後可以根據n是否等於1判斷,若不等於1,這時的n本身就是那個質因子,記入更新factor即可。

#include

#include

#include

#include

using

namespace std;

const

int maxn=

111010

;int prime[maxn]

,nump=0;

bool flag[maxn]=;

struct facto***ctors[10]

;bool

isprime

(int n)

return

true;}

void

find_prime

(void)}

}}intmain()

num++;}

}if(n>1)

int sum=0;

for(

int i=

0;i)printf

("%d\n"

,sum);}

return0;

}

1947 Problem C 質因數的個數

時間限制 1 sec 記憶體限制 32 mb 求正整數n n 1 的質因數的個數。相同的質因數需要重複計算。如120 2 2 2 3 5,共有5個質因數。可能有多組測試資料,每組測試資料的輸入是乙個正整數n,1 對於每組資料,輸出n的質因數的個數。120 2005 5注意1不是n 的質因數 若 n為...

分解質因數

質因數概念 每個合數都可以寫成幾個質數相乘的形式,這幾個質數就都叫做這個合數的質因數。如果乙個質數是某個數的因數,那麼就說這個質數是這個數的質因數。而這個因數一定是乙個質數。演算法原理 先根據需要分解的合數生成乙個質數表。然後依次從小到大依次除合數,每次除之後都將儲存步驟。表達不好,還是看 吧 us...

分解質因數

分解質因數 問題描述 求出區間 a,b 中所有整數的質因數分解。輸入格式 輸入兩個整數a,b。輸出格式 每行輸出乙個數的分解,形如k a1 a2 a3.a1 a2 a3.k也是從小到大的 具體可看樣例 樣例輸入 3 10 樣例輸出 3 34 2 2 5 56 2 3 7 78 2 2 2 9 3 3...