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次冪,則...