題目描述
科學家們在Samuel星球上的探險獲得了豐富的能源儲備,這使得空間站中大型計算機「Samuel II」的長時間運算成爲了可能。因爲在去年一年的辛苦工做取得了不錯的成績,小聯被容許用「Samuel II」進行數學研究。html
小聯最近在研究和約數有關的問題,他統計每一個正數N的約數的個數,並以f(N)來表示。例如12的約數有一、二、三、四、六、12。所以f(12)=6。下表給出了一些f(N)的取值:ios
f(n)表示n的約數個數,如今給出n,要求求出f(1)到f(n)的總和。ide
輸入輸出格式
輸入格式:輸入一行,一個整數npost
輸出格式:輸出一個整數,表示總和spa
輸入輸出樣例
輸入樣例#1:
3
輸出樣例#1:
5
說明
【數據範圍】code
20%N<=5000htm
100%N<=1000000blog
這題有點相似於篩法求素數數學
咱們能夠這樣想string
一個數的倍數的約數中,必定這個數
=.=
那就簡單了,按照篩素數的方法暴力篩就能夠
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 using namespace std; 6 const int MAXN=1000001; 7 int num[MAXN]; 8 int main() 9 { 10 int n; 11 scanf("%d",&n); 12 for(int i=1;i<=n;i++) 13 { 14 for(int j=i;j<=n;j+=i) 15 { 16 num[j]++; 17 } 18 } 19 int ans=0; 20 for(int i=1;i<=n;i++) 21 ans=ans+num[i]; 22 printf("%d",ans); 23 return 0; 24 }