Vijos1889 天真的因數分解

2022-05-15 17:12:22 字數 1378 閱讀 3956

小島: 什麼叫做因數分解呢?

doc : 就是將給定的正整數n, 分解為若干個素數連乘的形式.

小島: 那比如說 n=12 呢?

doc : 那麼就是 12 = 2 x 2 x 3 呀.

小島: 嗚嗚, 好難, 居然素數會重複出現, 如果分解後每乙個素數都只出現一次, 我就會.

wish: 這樣來說, 小島可以正確分解的數字不多呀.

doc : 是呀是呀.

wish: 現在問題來了, 對於給定的k, 第 k 個小島無法正確分解的數字是多少?

輸入只有一行, 只有乙個整數 k.

輸出只有一行, 只有乙個整數, 表示小島無法正確分解出來的第k個數字.

10

27

對於30%的資料, k <= 2,000,000

對於100%的資料, 1 <= k <= 10,000,000,000

前 10 個小島無法正確分解出來的數字依次是: 4 8 9 12 16 18 20 24 25 27

莫比烏斯反演

小於x的可以正確分解的數字個數是 σmu[i]*(x/i^2),算不能分解正確的只要把mu反一下就行

↑可以參照這裡

ac記錄喜+1

然而1a記錄並沒有喜+1,因為二分上界傻傻寫成了k……用腳想都知道不可能

↓這個二分上界是從黃學長那裡看來的233

1

/*by silvern

*/2 #include3 #include4 #include5 #include6 #include7 #include8

#define ll long long

9using

namespace

std;

10const

int mxn=200010;11

ll read()

14while(ch>='

0' && ch<='9')

15return x*f;16}

17int pri[mxn],mu[mxn],cnt=0;18

bool

vis[mxn];

19void

init()

26for(int j=1;j<=cnt && (ll)pri[j]*i)

29 mu[pri[j]*i]=-mu[i];30}

31}32return;33

}34ll calc(ll x)

41int

main()

50else l=mid+1;51

}52 cout53return0;

54 }

vijos1889 天真的因數分解

vijos1889 天真的因數分解 同bzoj2440 中山市選2011 完全平方數 就是改成了求有平方因子數,依舊考慮二分,只是把容斥係數取一下相反數,也就是把莫比烏斯函式求乙個反著的 詳見上方題解鏈結 include include includeconst int maxn 200007 de...

wustoj1889編輯距離

設a和b是兩個字串。我們要用最少的字元操作次數,將字串a轉換為字串b。這裡所說的字元操作共有三種 1 刪除乙個字元 2 插入乙個字元 3 將乙個字元改為另乙個字元。對任的兩個字串a和b,計算出將字串a變換為字串b所用的最少字元操作次數。第一行為字串a 第二行為字串b 字串a和b的長度均小於200。乙...

FZU 1889 龜兔賽跑

problem 1889 龜兔賽跑 萬眾矚目的第七屆龜兔賽跑比賽在北京時間3333年3月3日於火星打響。此次龜兔賽跑比賽的規則與往屆有所不同,不再考察兔子和烏龜誰在最短的時間內跑完規定的路程,而是考察誰在規定時間內跑的路程最長,而且兔子和烏龜在跑步都是勻速的。由於兔子的壞習慣,它總是喜歡把比賽的總時...