本文主要是介绍ZOJ 2095 Divisor Summation,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
刚开始做的时候不懂啊,怎么做怎么Time Limit Exceeded,那个心凉啊。
Time limit: 5 Seconds Memory limit: 32768K
Total Submit: 4504 Accepted Submit: 862
Give a natural number n (1 <= n <= 500000), please tell the summation of all its proper divisors.
Definition: A proper divisor of a natural number is the divisor that is strictly less than the number.
e.g. number 20 has 5 proper divisors: 1, 2, 4, 5, 10, and the divisor summation is: 1 + 2 + 4 + 5 + 10 = 22.
Input
An integer stating the number of test cases, and that many lines follow each containing one integer between 1 and 500000.
Output
One integer each line: the divisor summation of the integer given respectively.
Sample Input
3
2
10
20
Sample Output
1
8
22
Author: Neal Zane
#include <stdio.h>
int main()
{int a[500001] = { 0 , 0 } ;int i , j ;for (i = 1 ;i <= 250000;i ++)for (j = 2 ;i*j <= 500000;j ++)a[i*j] += i;scanf ("%d",&i);while (i --){scanf ("%d", &j);printf ("%d\n", a[j]);}return 0 ;
}
这篇关于ZOJ 2095 Divisor Summation的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!