題意:給你n個數,讓你求出這n個數最小的因子之積,但要滿足乙個條件,那就是這個乘積必須包含三個因子,可以為本身;
解題思路:對於每乙個數字,它有用的部分其實只有它的所有質因子(包括相等的)。求出所有數的所有質因子中最小的兩個,相乘就是答案。如果所有數字的質因子個數不到兩個,那麼就是無解。時間複雜度o(
n∗sq
rt(a
))。
#include#include#include#includeusing namespace std;
const int maxn = 100005;
int n;
long long fac[maxn];
int main()
if(x > 1)
fac[cnt++] = x;
} sort(fac,fac+cnt);
if(cnt >= 2)
printf("%lld\n",fac[0]*fac[1]);
else printf("-1\n");
} return 0;
}
hdu 5428 質因數分解
題意 給你乙個數列,讓你求這個數列的乘積的最小的因子,該因子應包含兩個以上的因子 包括1和本身 比如4包含3個因子,那麼它滿足這個條件。如果找不到滿足條件的因子,輸出 1。思路 對每個因子分解質因數,如果質因數的個數大於或等於2,最小的兩個質因子的乘積便是答案,否則輸出 1。include incl...
ZZULIOJ 1071 分解質因子
題目描述 將乙個正整數分解質因數,例如,輸入90,輸出2 3 3 5。輸入 輸入乙個正整數n 2 n 2000 輸出 從小到大輸出n的所有質因子,每兩個數之間空一格。樣例輸入 20樣例輸出 2 25其實題目要求的最後乙個不能空格可以忽視,因為判題平台會自動把最後空格忽視掉,不過還是不要忽視,要學會如...
14分解質因式
問題 將乙個整數分解質因數。例如 輸入90,列印出90 233 5 target int input 輸入乙個整數 print target,end if target 0 abs x 返回x的絕對值 target abs target print 1 end flag 0if target 1 p...