約數個數 反素數

2021-10-04 02:51:00 字數 710 閱讀 5095

對於任何正整數x,其約數的個數記作g(x),例如g(1)=1、g(6)=4。

如果某個正整數x滿足:對於任意的小於x的正整數 i,都有g(x)>g(i) ,則稱x為反素數。

例如,整數1,2,4,6等都是反素數。

現在給定乙個數n,請求出不超過n的最大的反素數。

輸入格式

乙個正整數n。

輸出格式

乙個整數,表示不超過n的最大反素數。

資料範圍

1≤n≤2∗1091≤n≤2∗109

輸入樣例:

1000

輸出樣例:

840

#include

#include

#include

using

namespace std;

typedef

long

long ll;

int primes[9]

=;int maxd, number;

int n;

void

dfs(

int u,

int last,

int p,

int s)

if(u ==9)

return

;for

(int i =

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

intmain()

約數個數 約數之和

給乙個數n,求它的約數個數 因為n可以唯一分解成質因數的乘積即 n p 1 p 2 p t 所以n的約數c的形式應該是 c p 1 p 2 p t 對於任何兩組不同的 beta 1,beta t 的取值,由算數基本定理得c是不同的,由於 beta i 的取值為 0,1,alpha i 共 alpha...

約數個數定理

編輯 對於乙個大於1正整數n可以 分解質因數 則n的 正約數的個數就是 其中a 1 a2 a 3 ak是p 1 p2 p 3,p k的指數。編輯首先同上,n可以 分解質因數 n p1 a1 p2 a2 p3 a3 pk ak,由約數定義可知p1 a1的約數有 p1 0,p1 1,p1 2.p1 a1...

數論 約數個數

這題是個大水題,只不過資料稍微大了點。結果大家都用那啥的模擬。結果哈哈哈哈哈哈。求a b之間每個數的約數個數的總和。input 一行兩個正整數a b,以乙個空格隔開。output 一行乙個整數,即答案。資料範圍 對於50 的資料,1 a b 1000 對於100 的資料,1 a b 10,000,0...