原題來自:poi 2001
如果乙個大於等於 1
'>1
的正整數 n
'>n
,滿足所有小於 n
'>n
且大於等於 1
'>1
的所有正整數的約數個數都小於 n
'>n
的約數個數,則 n
'>n
是乙個反素數。譬如:1,2
,4,6
,12,24
'>1,2,4,6,12,24
,它們都是反素數。
請你計算不大於 n
'>n
的最大反素數。
一行乙個正整數 n
'>n
只包含乙個整數,即不大於 n
'>n
的最大反素數。
1000
840
對於 10% 的資料,1≤n
≤103'>1≤n≤103
對於 40% 的資料,1≤n
≤106'>1≤n≤106
對於 100% 的資料,1≤n
≤2×10
9'>1≤n≤2×109
。這道題是一本通的例題,雖然**很短但是注釋過於簡單不變理解,洛谷大佬的題解太長又不想看。。
#includeusingnamespace
std;
#define ll long long
int a[20]=;
ll n,s,s1;
void
dfs(ll x,ll y,ll b,ll z)
dfs(x+1,y*k,i,z*(i+1
)); }
}int
main()
在上面的**中:x表示目前檢索的是第幾個質因子;
y表示目前已經得到的antiprime;
b表示上乙個書的指數(所以i 才會從一開始迴圈到b就結束)
z表示當前所取到的約數個數。
s1表示的是目前可以取到的最大約數個數;s表示當前最小的antiprime(即答案)
數論1 素數 約數 反素數
素數是指只能被自身整除和被1整除的數 大於1的自然數,1不是素數 不是素數的數為合數 常見的題型有 素數的判定 素數的篩選兩種題型 素數的篩選 const int n 1000001 int primes n cnt primes存素數 cnt 存素數的個數 bool st n 存數n是否被篩過 v...
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 ...