HDU1215--七夕节
找出小于N的全部因子的和,N比較大,非常明显要打表来做,不然肯定会超时
方法就是枚举范围内每一个整数。然后再枚举范围内这个整数的全部的倍数,加上这个数
由于这个整数的倍数中一定含有这个整数因子,这样速度比枚举推断是否%==0快的多
假设用取余来推断会超时,另外相同的方法假设用cin,cout来输入输出一样也会超时
最好採用c语言的输入输出的格式
贴一下自己的代码哈
#include <stdio.h> using namespace std; const int MAXN = 500000; int a[MAXN]; int main() { #ifdef LOCAL freopen("input.txt" , "r" , stdin); #endif for(int i=2; i<=MAXN; ++i) { for(int j=2; j*i<=MAXN ;++j) { a[j*i] += i; } } int T; scanf("%d" , &T); while(T--) { int n; scanf("%d" , &n); printf("%d\n" , a[n]+1); } return 0; }