約數研究

SSL_Cgl發表於2018-10-16

題目描述

科學家們在Samuel星球上的探險得到了豐富的能源儲備,這使得空間站中大型計算機“Samuel II”的長時間運算成為了可能。由於在去年一年的辛苦工作取得了不錯的成績,小聯被允許用“Samuel II”進行數學研究。

小聯最近在研究和約數有關的問題,他統計每個正數N的約數的個數,並以f(N)來表示。例如12的約數有1、2、3、4、6、12。因此f(12)=6。下表給出了一些f(N)的取值:

在這裡插入圖片描述

f(n)表示n的約數個數,現在給出n,要求求出f(1)到f(n)的總和。

**輸入輸出格式

輸入格式:
輸入一行,一個整數n

輸出格式:
輸出一個整數,表示總和

輸入輸出樣例

輸入樣例#1: 複製
3
輸出樣例#1: 複製
5
說明

【資料範圍】

20%N<=5000

100%N<=1000000**

分析

如果一個一個模擬會超時,這時候就要使用篩選法

#include<bits/stdc++.h>
using namespace std;
const int N=1000235;
int a[N];
long long choose(long long n)
{
	long long res=0;
	for(long long i=1;i<=n;i++)
	{
		for(long long j=i;j<=n;j+=i)
		 a[j]++;
		res+=a[i];
	}
	return res;
}
int main()
{
	long long n; 
    cin>>n;
	long long ans=choose(n);
	cout<<ans<<endl;
}

相關文章