題目鏈結
description
小 x 自幼就很喜歡數。但奇怪的是,他十分討厭完全平方數。他覺得這些
數看起來很令人難受。由此,他也討厭所有是完全平方數的正整數倍的數。然而
這絲毫不影響他對其他數的熱愛。
這天是小x的生日,小 w 想送乙個數給他作為生日禮物。當然他不能送一
個小x討厭的數。他列出了所有小x不討厭的數,然後選取了第 k個數送給了
小x。小x很開心地收下了。
然而現在小 w 卻記不起送給小x的是哪個數了。你能幫他一下嗎?
input
包含多組測試資料。檔案第一行有乙個整數 t,表示測試
資料的組數。
第2 至第t+1 行每行有乙個整數ki,描述一組資料,含義如題目中所描述。
output
含t 行,分別對每組資料作出回答。第 i 行輸出相應的
第ki 個不是完全平方數的正整數倍的數。
sample input
4
1 13
100
1234567
sample output1
19 163
2030745
hint
對於 100%的資料有 1 ≤ ki ≤ 10^9,t ≤ 50
思路
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define lowbit(x) (x & (-x))
#define mem(a, b) memset(a, b, sizeof(a))
#define rep(i, a, n) for (int i = a; i < n; ++i)
#define mid ((l + r)>>1)
#define lc rt<<1
#define rc rt<<1|1
typedef
long
long ll;
#define maxn 100005
using
namespace std;
int mo[maxn]
, vis[maxn]
, prime[maxn]
;void init (
)for
(int j =
0; j < len &&
(ll)prime[j]
* i < maxn;
++j)
mo[ i * prime[j]]=
-mo[i];}
}}intsolve
(int x)
return sum;
}int
main()
printf
("%d\n"
, l);}
return0;
}
bzoj 2440 (莫比烏斯函式)
bzoj 2440 完全平方數 題意 找出第k個不是完全平方數的正整數倍的數。例如 4 9 16 25 36什麼的 通過容斥原理,我們減去所有完全數 4有n 4個,但是先36這種會被重複減去,所有我們還需要加上類似36的數,然後你會發現這些數前面的符號和他們開根號的 莫比烏斯函式一樣 資料很大有1e...
BZOJ 2440 莫比烏斯函式的應用
題意 全然平方數是指含有平方數因子的數。求第ki個非全然平方數。解法 比較明顯的二分,getsum int middle 求1 middle有多少個非全然平方數,然後二分。求1 middle的非全然平方數個數能夠用總數減掉全然平方數個數。計算全然平方數的個數用容斥 首先加上n 2 2 n 3 3 n...
bzoj 2440 莫比烏斯反演應用
2440 中山市選2011 完全平方數 time limit 10 sec memory limit 128 mb submit status discuss description 小 x 自幼就很喜歡數。但奇怪的是,他十分討厭完全平方數。他覺得這些 數看起來很令人難受。由此,他也討厭所有是完全平...