1. 程式人生 > >解救迷茫的草灘小王子

解救迷茫的草灘小王子

解救迷茫的草灘小王子  

描述

 

  彩虹島上一共會舉辦n場純粹的(CHD−FINAL)比賽,編號為從1∼n的正整數。

  小王子是一個狂熱又 純粹的ACMer,自然要參加每一場。

  萬萬沒想到,比賽規則被邪惡的彩虹島副主席掌控了。副主席一共會修改n次比賽規則,第i 次修改規則會導致編號為i的正整數倍的比賽性質發生反轉。(比賽只有兩種性質:純粹和不純粹,純粹的比賽經過反轉會變成不純粹的比賽,不純粹的比賽經過反轉會變成純粹的比賽)

  小王子很苦惱,沒辦法改變比賽規則的他只想參加純粹的比賽。請你告訴他一共能參加多少場比賽。

 

輸入

 

輸入第一行為一個整數T(T ≤ 10^{5}105),表示一共有T組測試資料。

接下來有T行,每行有1個整數為n(1 ≤ n ≤ 10^{5}105),表示比賽的總數量

 

輸出

 

對於每組測試資料輸出一個整數x,表示草灘小王子能參加的比賽數。

 

輸入樣例 1 

2
1
5

輸出樣例 1

0
3

提示

對於第一組樣例,沒有小王子能參加的純粹的比賽。

對於第二組樣例,小王子能參加的比賽編號為2,3,5。

來源

2018長安大學acm新生賽

    一開始想的是模擬,TLE 後來想打表或用位想辦法模擬減小時間 打表不行,submit有程式碼長度限制   解法: 對於某一個數i,如果它不是完全平方數,那麼它的因子一定有偶數個(成對的),否則則有奇數個
前一種情況相當於沒變,後一種情況相當於變一次 故[1,n]內沒變的即有n-[sqrt(n)]個