1. 程式人生 > >【題解】洛谷P1403[AHOI2005]約數研究 數學知識

【題解】洛谷P1403[AHOI2005]約數研究 數學知識

題目連結

題目描述

科學家們在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<cstdio>
int main()
{
    int n;
    scanf("%d",&n);
    long long sum=0;
    for(int i=1;i<=n;i++)sum+=n/i;
    printf("%lld\n",sum);
    return 0;
}

總結

將問題簡單轉化一下就可以O(n)了