小易是乙個數論愛好者,並且對於乙個數的奇數約數十分感興趣。一天小易遇到這樣乙個問題: 定義函式f(x)為x最大的奇數約數,x為正整數。 例如:f(44) = 11.
現在給出乙個n,需要求出 f(1) + f(2) + f(3).......f(n)
例如: n = 7
f(1) + f(2) + f(3) + f(4) + f(5) + f(6) + f(7) = 1 + 1 + 3 + 1 + 5 + 3 + 7 = 21
小易計算這個問題遇到了困難,需要你來設計乙個演算法幫助他。
輸入乙個整數n (1 ≤ n ≤ 1000000000)
輸出乙個整數,即為f(1) + f(2) + f(3).......f(n)奇數無非就是1、 5、 7 、9等等
任何乙個偶數不就是這些奇數不停的乘以二得到的。
那麼很簡單,用1不停的乘以二,直到結果大於輸入的整數n為止。
再用3不停的乘以二,直到結果大於n為止。每次乘以2均將結果加一。最後輸入結果即可。
#includeusing namespace std;
int main()
}cout
}
最大的奇約數
參考 小易是乙個數論愛好者,並且對於乙個數的奇數約數十分感興趣。一天小易遇到這樣乙個問題 定義函式f x 為x最大的奇數約數,x為正整數。例如 f 44 11.現在給出乙個n,需要求出 f 1 f 2 f 3 f n 例如 n 7 f 1 f 2 f 3 f 4 f 5 f 6 f 7 1 1 3 ...
牛客網 n的約數 dfs
題目描述 戳這裡 解題思路 這題思路好想,n最多也就是20個不同的素數相乘,把所有可能的素數找到,然後列舉素數個數就行了。n p1 q1 p2 q2 p3 q3 pi qi 約數個數也好找,有個約數個數定理 對於乙個大於1正整數n可以分解質因數 則n的正約數的個數就是 其中a1 a2 a3 ak是p...
牛客網 奇位數上都是奇數
題目描述 給定乙個長度不小於2的陣列arr。寫乙個函式調整arr,使arr中要麼所有的偶數字上都是偶數,要麼所有的奇數字上都是奇數上。要求 如果陣列長度為n,時間複雜度請達到o n 額外空間複雜度請達到o 1 下標0,2,4,6 算作偶數字,下標1,3,5,7 算作奇數字,例如 1,2,3,4 調整...