hdu 5428 分解質因子

2021-07-15 04:25:29 字數 562 閱讀 8324

題意:給你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...