數學(反素數)

2021-08-22 08:55:55 字數 838 閱讀 6369

定義:對於任何正整數n,其約數個數記為f(n),例如f(6)=4;如果存在乙個正整數n滿足:對於任意的正整數x(0乙個反素數的所有質因子必然是從2開始的若干個質數,因為乙個數是反素數,說明在跟它約數相同的數中,它是最小的。

如果n=2t1 * 3t2 * 5t3 *...,那麼一定有t1>=t2>=t3>=t4... 另外易知如果n=2t1* 3t2 * 5t3 * ...,那麼n的約數個數為(t1+1) *(t2+1) * (t3+1)...

先貼個板子:

void dfs(ll num,int k,int sum,int limit)

if(sum==maxsum&&ans>num) //約數個數相同,把最優解更新為較小值

if(k>16) //這裡k>x; x至少滿足prime[1]*prime[2]*prime[3]*...*prime[x]>x ,當x=16時,資料已超過10^18

return; //當x=10時,資料已超過10^9

ll temp=num;

for(int i=1;i<=limit;i++) //列舉每個質因子的個數

;void set_prime()

}void dfs(ll num,int k,int sum,int limit)

if(sum==maxsum&&ans>num)

ans=num;

if(k>16)

return;

ll temp=num;

for(int i=1;i<=limit;i++)

return 0;

}

數學 反素數問題

1060 最複雜的數 把乙個數的約數個數定義為該數的複雜程度,給出乙個n,求1 n中複雜程度最高的那個數。例如 12的約數為 1 2 3 4 6 12,共6個數,所以12的複雜程度是6。如果有多個數複雜度相等,輸出最小的。輸入第1行 乙個數t,表示後面用作輸入測試的數的數量。1 t 100 第2 t...

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 ...