BZOJ 2440 完全平方數

2021-06-26 12:27:24 字數 1198 閱讀 9641

time limit: 10 sec  

memory limit: 128 mb

submit: 966  

solved: 457 [

submit][

status]

小 x 自幼就很喜歡數。但奇怪的是,他十分討厭完全平方數。他覺得這些

數看起來很令人難受。由此,他也討厭所有是完全平方數的正整數倍的數。然而

這絲毫不影響他對其他數的熱愛。 

這天是小x的生日,小 w 想送乙個數給他作為生日禮物。當然他不能送一

個小x討厭的數。他列出了所有小x不討厭的數,然後選取了第 k個數送給了

小x。小x很開心地收下了。 

然而現在小 w 卻記不起送給小x的是哪個數了。你能幫他一下嗎?

包含多組測試資料。檔案第一行有乙個整數 t,表示測試

資料的組數。 

第2 至第t+1 行每行有乙個整數ki,描述一組資料,含義如題目中所描述。 

含t 行,分別對每組資料作出回答。第 i 行輸出相應的

第ki 個不是完全平方數的正整數倍的數。

4 1

13 100

1234567

1 19

163

2030745

對於 100%的資料有 1 ≤ ki ≤ 10^9

,    t ≤ 50

——分割線——

好吧,這道題是乙個裸的莫比烏斯反演,好吧,在做這題之前我只是知道它,完全不曉得這麼神奇!莫比烏斯函式的定義是如果i質因數分解中有任意乙個大於1的指數就為0,否則為-1。這樣,由這道題的題目和容斥原理,平方數就要加上有奇數個質數平方因子的數,在減去偶數個質數的平方的個數,就是平方數的個數!

具體**嘛:

/*author:wnjxyk*/

#include#include#include#include#includeusing namespace std;

#define ll long long

const int maxn=100000;

ll miu[maxn+10];

inline void getmiu()

}} inline ll check(ll n)

return ans;

}inline ll getans(ll k){

ll left=1,right=k*2+1,mid;

while(left+1

BZOJ2440 完全平方數

description 小 x 自幼就很喜歡數。但奇怪的是,他十分討厭完全平方數。他覺得這些 數看起來很令人難受。由此,他也討厭所有是完全平方數的正整數倍的數。然而 這絲毫不影響他對其他數的熱愛。這天是小x的生日,小 w 想送乙個數給他作為生日禮物。當然他不能送一 個小x討厭的數。他列出了所有小x不...

BZOJ 2440 完全平方數

求第k個無平方因子的數 無平方因子數,即分解質因數後所有質因數的次數都為1的數.首先轉化為判定性問題,即1 n中有多少個數為無平方因子數 二分答案.根據容斥原理可得 n以內的無平方因子數 0個質數乘積的平方的倍數的數的個數 即n 1個質數乘積的平方的倍數的數的個數 如4的倍數,9的倍數 2個質數乘積...

BZOJ 2440 完全平方數

time limit 10 sec memory limit 128 mb submit 966 solved 457 submit status 小 x 自幼就很喜歡數。但奇怪的是,他十分討厭完全平方數。他覺得這些 數看起來很令人難受。由此,他也討厭所有是完全平方數的正整數倍的數。然而 這絲毫不影...