cometoj——C1465 [AHOI2005]约数研究

题目描述

科学家们在 Samuel 星球上的探险得到了丰畜的能源储备,这使得空间站中大细计算机“Samuel II”的长时间运算成为了可能。由于在去年一年的辛苦工作取得了不错的成绩,小联被允许用“Samuel II”进行数学研究。

小联最近在研究和约数有关的问题,他统计每个正数 NN 的约数的个数,并以 f(N)f(N) 来表示。例如 12 的约数有 1、2、3、4、6、12。因此 f(12)=6。下表给出了一些f(N) 的取值:

在这里插入图片描述

现在小联希望用“Samuel II”来统计 f(1) 到 f(N) 的累加和 M。

M=\sum\limits_{i=1}^{n}f(i)
输入描述

只有一行一个整数 N(0 < N < 1000000)

输出描述

只有一行输出,为整数 M,即 f(1) 到 f(N) 的累加和。

样例输入 1

3
样例输出 1

5

思路:举个例子6,for循环1-6,1时为6,6个数都有1这个约束。2时为3, 2,4,6共3个数有这个约数以此类推

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner read = new Scanner(System.in);
		long n = read.nextLong();
		long count=0;
		//举个例子6,for循环1-6,1时为6,6个数都有1这个约束。2时为3,  2,4,6共3个数有这个约数以此类推
		for(int i=1;i<=n;i++)
		{
			count += n/i; 
		}
		System.out.println(count);
	}

}

你可能感兴趣的:(cometoj)