牛客網 kotori和素因子(dfs 篩素數)

2021-09-24 20:41:12 字數 1090 閱讀 7003

kotori拿到了一些正整數。她決定從每個正整數取出乙個素因子。但是,kotori有強迫症,她不允許兩個不同的正整數取出相同的素因子。

她想知道,最終所有取出的數的和的最小值是多少?

注:若a%k==0,則稱k是a的因子。若乙個數有且僅有兩個因子,則稱其是素數。顯然1只有乙個因子,不是素數。

第一行乙個正整數n,代表kotori拿到正整數的個數。

第二行共有n個數ai,表示每個正整數的值。

保證不存在兩個相等的正整數。

1<=n<=10

2<=ai<=1000

乙個正整數,代表取出的素因子之和的最小值。若不存在合法的取法,則輸出-1。
示例1

4

12 15 28 22

17
分別取3,5,7,2,可保證取出的數之和最小
示例2

5

4 5 6 7 8

-1
1<=n<=10

2<=ai<=1000

思路:就是把每個數的素因子都找出來,用vector存起來,然後dfs找最小值

#include using namespace std;

int n;

int vis[1005];

vectorv[105];

int ans=999999;

const int max = 1000005;

bool prime[max];

void init()

}} void dfs(int d,int sum)

for(int i=0;iint main()

} //cout<} dfs(0,0);

if(ans==999999)

printf("-1\n");

else

printf("%d\n",ans);

return 0;

}

牛客網C語言 計算並輸出該整數的最大素因子

對於給定的字串行,從左至右將所有的數字字元取出拼接成乙個無符號整數 字串行長度小於100,拼接出的整數小於2 31,計算並輸出該整數的最大素因子 如果是素數,則其最大因子為自身 有多組資料,輸入資料的第一行為乙個正整數,表示字串行的數目,每組資料為一行字串行。對每個字串行,取出所得整數的最大素因子,...

牛客網華為機試 5 質數因子

分解公因式 練習函式的書寫 解法1 不使用函式 include include using namespace std intmain return0 解法2 使用函式 函式介面說明 public string getresult long uldatainput 輸入引數 long uldatai...

牛客挑戰29B 白井黑子 素因子分解,

題意 長度為n的序列a,定義f x 為x的各個數字相乘.n 2e5,0 a i k 1e18.問有多少對 i,j 滿足f a i f a j 可以表示為某個自然數的k次冪.f x a1 p1 a2 p2.ak pk.f y a1 q1 a2 q2.ak qk 那麼f x f y 為某個x的k次冪,則...