反素數 反素數應用 自己用的模板

2021-09-11 22:10:16 字數 1439 閱讀 5498

反素數定義:

對於任何正整數n,其約數個數為f(n),例如f(6)=4,如果某個正整數n滿足:對任意的正整數i(0性質:

乙個反素數的所有質因子必然是從2開始的連續若干個質數,因為反素數是保證約數個數為x的這個數n盡量小

同樣的道理,如果n=2t1*3t2…

t1>=t2>=t3>=t4>=t5…

在acm競賽中,最常見的問題如下:

(1)給定乙個數,求乙個最小的正整數,使得的約數個數為n

(2)求出中約數個數最多的這個數

例題:b - strangestandard hdu - 4133

這個題的問題也就是問題2

**如下:

#include

#include

using namespace std;

typedef

long

long ll;

ll resultsum;

ll lastresult;

ll n;

ll prime=

;void

dfs(ll result,ll k,ll sum,ll limit)

if(sum==resultsum && result < lastresult)

if(k>16)

return

; ll temp = result;

for(

int i=

1;i<=limit;i++

) temp *

= prime[k]

;dfs

(temp,k+

1,sum*

(i+1

),i);}

}int

main()

return0;

}

還有個是找多少個約數的c - number with the given amount of divisors codeforces - 27e

#include

#include

#include

using namespace std;

int prime=

;typedef

long

long ll;

ll n;

//約數不能超過這個範圍

ll lastresult=

1e18

;ll number=

1e18

;void

dfs(ll result,ll sum,ll k,ll limit)

if(k>16)

ll temp=result;

for(

int i=

1;i<=limit;i++)}

intmain()

反素數還是比較有用的,這一塊還得繼續加強。

python打反素數 反素數求解 反素數打表

問題描述 對於任何正整數x,起約數的個數記做g x 例如g 1 1,g 6 4.如果某個正整數x滿足 對於任意i 0 現在給乙個n,求出不超過n的最大的反素數.比如 輸入1000 輸出 840 思維過程 求 1.n 中約數在大的反素數 求約數最多的數 如果求約數的個數 756 2 2 3 3 7 1...

反素數求解 反素數打表

問題描述 對於任何正整數x,起約數的個數記做g x 例如g 1 1,g 6 4.如果某個正整數x滿足 對於任意i 0現在給乙個n,求出不超過n的最大的反素數.比如 輸入1000 輸出 840 思維過程 求 1.n 中約數在大的反素數 求約數最多的數 如果求約數的個數 756 2 2 3 3 7 1 ...

反素數求解 反素數打表

問題描述 對於任何正整數x,起約數的個數記做g x 例如g 1 1,g 6 4.如果某個正整數x滿足 對於任意i 0現在給乙個n,求出不超過n的最大的反素數.比如 輸入1000 輸出 840 思維過程 求 1.n 中約數在大的反素數 求約數最多的數 如果求約數的個數 756 2 2 3 3 7 1 ...