NYOJ 478 月老的烦恼(1)
2013-12-19 18:54
267 查看
月老的烦恼(1)
时间限制:1000 ms | 内存限制:65535 KB难度:3
描述
月老最近遇到了一个很棘手的问题,就是“剩男”“剩女”急速增长,而自己这边又人手不足导致天天都得加班。现在需要你来帮助月老解决这个问题,牵红绳的规则很简单:每个男生都一个编号n(1<=n<=500000),编号n的因数之和就是要牵线的女生的编号。
如20的因子是:1,2,4,5,10;
输入
输入数据的第一行是一个数字T(1<=T<=500000),它表明测试数据的组数.然后是T组测试数据,每组测试数据只有一个数字N(1<=N<=500000).
输出
对于每组测试数据,请输出一个代表输入编号N男生的另一半的编号.
样例输入
3 2 10 12
样例输出
1 8 16
常规方法:
#include<stdio.h> int main() { int m,n; scanf("%d",&m); while(m--) { int i; int sum = 1; scanf("%d",&n); for (i=2; i*i< n; ++i) { if (n%i == 0) { sum += i + n/i; } } if (i*i == n) { sum += i; } printf("%d\n",sum); } }
很可惜,这个方法会超时。那就打表吧,开辟一个数组,把500000以内的数的因子和保存在数组里面,直接调用即可。
#include <stdio.h> int main() { int a[500001]={0},i,j; for( i=1; i<500001; i++) { for( j=1; i*j<500001; j++) { a[i*j]+=i; } } scanf("%d",&i); while(i--) { scanf("%d",&j); printf("%d\n",a[j]-j); } }
相关文章推荐
- NYOJ 题目478 月老的烦恼(1)(数学)
- NYOJ 478 月老的烦恼(1)
- nyoj-478 月老的烦恼 七夕节 数因子
- nyoj-478-月老的烦恼(1)
- NYOJ478 月老的烦恼(1)
- NYOJ 478 月老的烦恼(1)
- NYOJ478 月老的烦恼(1)
- 月老的烦恼(1) NYOJ 478
- NYOJ 478 月老的烦恼(1)【因字数&&HDU 1215 七夕节】
- nyoj_478_月老的烦恼(1)_201312101248
- nyoj 478 月老的烦恼(1)
- 478 月老的烦恼(1)
- NYOJ 月老的难题和游戏高手的烦恼
- NYOJ 月老的难题南工478
- NYOJ 478 月老的难题 (1)解题报告
- NYOJ 237 NYOJ 239 二分图 最大匹配模板题 游戏高手的烦恼 月老的难题 两个题一样
- 问题测试数据NYOJ 478 月老的难题 (1)解题报告
- NYOJ 239 月老的难题
- nyoj 月老的难题
- NYOJ 453 小珂的烦恼