小b有n個關閉的燈泡,編號為1…n。
小b會進行n輪操作,第i輪她會將編號為i的倍數的燈泡的開關狀態取反,即開變成關,關變成開。
求n輪操作後,有多少燈泡是亮著的。
收起輸入
輸入乙個數字表示燈泡數n,其中1<n≤10000000
輸出輸出乙個數字表示最終亮著的燈泡數
輸入樣例
3輸出樣例
1
思路:求亮著的燈泡數是在求1~n中每個數因子的個數,打表後會發現當i為奇數或sqrt(i)不是整數時,它的因子個數為偶數,而sqrt(i)為整數時因子個數為奇數,分析題意會發現當i的因子個數為偶數時,最準的狀態為滅,而因子個數為奇數最準狀態為亮,綜合以上分析可得結論:求亮著的燈泡樹是在求1 ~n中可開開方數的數量(sqrt(n))。
#include#includeusing namespace std;
int main()
打表分析
#include#include#includeusing namespace std;
const int maxn = 10000000;
int init[maxn];
int main()
for (int i = 2; i <= n; i++) }
cout << count << endl;
getchar();
getchar();
}
51 Nod 2485 小b重排字串
小b有乙個字串s,全部為小寫字母,現在她希望重排列s,使得s中相鄰字元不同。請你判斷小b是否可能成功。樣例解釋 將 aab 重排為 aba 即可。找到出現次數最大的次數k,設字串長度為n。如果n為偶數數,那麼k最大為 n 2。如果n為奇數,那麼k 最大 為 n 2 1。超過的話就不合格 includ...
B 整數劃分 51Nod 1201
將n分為若干個不同整數的和,有多少種不同的劃分方式,例如 n 6,共4種。由於資料較大,輸出mod 10 9 7的結果即可。input 輸入1個數n 1 n 50000 output 輸出劃分的數量mod 10 9 7。sample input 6sample output 4思路如下 用dp i ...
51NOD 1629 B君的圓錐
1629 b君的圓錐 基準時間限制 1 秒 空間限制 131072 kb 分值 10 難度 2級演算法題 b君要用乙個表面積為s的圓錐將白山雲包起來。b君希望包住的白山雲體積盡量大,b君想知道體積最大可以是多少。注意圓錐的表面積包括底面和側面。input 一行乙個整數,表示表面積s。1 s 10 9...