定義:對於任何正整數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 ...