首页 > 代码库 > HDU1215--七夕节
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; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。