4C - 七夕节

七夕节那天,月老来到数字王国,他在城门上贴了一张告示,并且和数字王国的人们说:"你们想知道你们的另一半是谁吗?那就按照告示上的方法去找吧!" 
人们纷纷来到告示前,都想知道谁才是自己的另一半.告示如下:

数字N的因子就是所有比N小又能被N整除的所有正整数,如12的因子有1,2,3,4,6. 
你想知道你的另一半吗?

Input

输入数据的第一行是一个数字T(1<=T<=500000),它表明测试数据的组数.然后是T组测试数据,每组测试数据只有一个数字N(1<=N<=500000).

Output

对于每组测试数据,请输出一个代表输入数据N的另一半的编号.

Sample Input

3
2
10
20

Sample Output

1
8
22

// 注意T和N的取值范围,直接遍历求因子和计算量过大

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int t, n, sum, i;
 5     scanf("%d", &t);
 6     while(t--)
 7     {
 8         scanf("%d", &n);
 9         sum=0;
10         for(i=1;i<n;i++)
11             if(n%i==0)
12                 sum+=i;
13         printf("%d\n", sum);
14     }
15     return 0;
16 }

Time Limit Exceeded

// 取一半遍历还是太大

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int t, n, sum, i;
 5     scanf("%d", &t);
 6     while(t--)
 7     {
 8         scanf("%d", &n);
 9         sum=1;
10         for(i=2;i<=n/2;i++)
11             if(n%i==0)
12                 sum+=i;
13         printf("%d\n", sum);
14     }
15     return 0;
16 }

Time Limit Exceeded*2

// 用了打表,但是求因子和的算法未变

 1 #include<stdio.h>
 2 int soulm[500001];
 3 int main()
 4 {
 5     for(int j=1;j<=500000;j++)
 6     {
 7         int sum=1;
 8         for(int i=2;i<=j/2;i++) if(j%i==0) sum+=i;
 9         soulm[j]=sum;
10     }
11     int t, n;
12     scanf("%d", &t);
13     while(t--)
14     {
15         scanf("%d", &n);
16         printf("%d\n", soulm[n]);
17     }
18     return 0;
19 }

Time Limit Exceeded*3

// i和j表示因子,其中j又代表不超过N的正整数.// 减少了调用因子的次数,用循环控制积// 注意表中的和包含了N,输出时要减去

 1 #include<stdio.h>
 2 int soulm[500001];
 3 int main()
 4 {
 5     for(int j=1;j<=500000;j++)
 6         for(int i=1;i*j<=500000;i++)
 7             soulm[i*j]+=i;
 8     int t, n;
 9     scanf("%d", &t);
10     while(t--)
11     {
12         scanf("%d", &n);
13         printf("%d\n", soulm[n]-n);
14     }
15     return 0;
16 }

AC

原文地址:https://www.cnblogs.com/goldenretriever/p/10355831.html

时间: 2024-11-05 11:36:19

4C - 七夕节的相关文章

HDU1215 七夕节(因子之和)

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1215 题目描述: 七夕节 Problem Description 七夕节那天,月老来到数字王国,他在城门上贴了一张告示,并且和数字王国的人们说:"你们想知道你们的另一半是谁吗?那就按照告示上的方法去找吧!"人们纷纷来到告示前,都想知道谁才是自己的另一半.告示如下: 数字N的因子就是所有比N小又能被N整除的所有正整数,如12的因子有1,2,3,4,6.你想知道你的另一半吗? Input 输

(hdu step 2.1.5)七夕节(球一个数的所有因子之和)

题目: 七夕节 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 4249 Accepted Submission(s): 1499   Problem Description 七夕节那天,月老来到数字王国,他在城门上贴了一张告示,并且和数字王国的人们说:"你们想知道你们的另一半是谁吗?那就按照告示上的方法去找吧!"人们纷纷来到告示前

vijos P1836HYS与七夕节大作战 (01背包之2--转换dp对象)

题目:vijos P1836HYS与七夕节大作战 题意: n个对象,每价值为vi,比重pi,总容量100 分析: 类似背包重量的比重pi为实数,不能作为下标,所以改变dp对象 将求容量100内的最大价值 → 求相应价值的最小容量, 则容量第一个≤100的价值,为符合条件的价值最大的值 状态:dp[v]:价值为v的最小容积 转移方程:         dp[V] = min(dp[V], dp[V-v[i]] + p[i]); 核心: for(i = 1; i<=n; i++) {     for

七夕节不撸代码你好意思说自己是程序猿

七夕节不撸代码你好意思说自己是程序猿 好吧,已经打了一天的包,上午匆匆打完之后放在fir上面结果还以为今天会能轻松一天,谁知道造化弄人,硬是安装不了,没有办法我以为是自己加了push导致的,全部删了自己生成的证书,重新开始,唉!对方有时时刻刻的催促着我拿包来,真是压力山大,说好上午的包呢中午还在继续来来回回的尝试着,一直以为是证书问题,没有办法自己又重新建立了新的dis证书(心急中建立的,真想把什么都删了一切重来) 整整一个中午都是在失败和催促中进行中,更可恶的是apple后台进不去,真尼玛崩了

hdu 1215 七夕节

七夕节 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 47104    Accepted Submission(s): 15117 Problem Description 七夕节那天,月老来到数字王国,他在城门上贴了一张告示,并且和数字王国的人们说:"你们想知道你们的另一半是谁吗?那就按照告示上的方法去找吧!"人们纷纷来到告示

HDU 1215.七夕节【筛选法】【7月26】

七夕节 七夕节那天,月老来到数字王国,他在城门上贴了一张告示,而且和数字王国的人们说:"你们想知道你们的还有一半是谁吗?那就依照告示上的方法去找吧!" 人们纷纷来到告示前,都想知道谁才是自己的还有一半.告演示样例如以下: 数字N的因子就是全部比N小又能被N整除的全部正整数,如12的因子有1,2,3,4,6. 你想知道你的还有一半吗? Input 输入数据的第一行是一个数字T(1<=T<=500000),它表明測试数据的组数.然后是T组測试数据,每组測试数据仅仅有一个数字N(

ITer的七夕节,你的情人在哪里(2015-08-19)

自写<一个程序猿的生命周期>连载以来,迎来第一个七夕节,打算写篇文章纪念一下.我主张过中国自己的节日的,也不反对过其他国家的节日,但是要搞清楚其他国家节日的由来,不要把别人的鬼节当成我们的狂欢节,仅此而已.看过<一个程序猿的生命周期>的连载文章的朋友,可能对我有些了解,有自己的想法.比较坚强.接受新鲜事物,但是也相对保守,这可能是来自大山或农村80后普遍的特点.同时,我们也是有情有义的.呵呵!!! 周边的人群中确实有很多ITer没有对象,30多岁没有对象也是普遍现象,但是,我并不认

七夕节(杭电1215)

七夕节 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 30808    Accepted Submission(s): 9622 Problem Description 七夕节那天,月老来到数字王国,他在城门上贴了一张告示,并且和数字王国的人们说:"你们想知道你们的另一半是谁吗?那就按照告示上的方法去找吧!" 人们纷纷来到告

HDU 1215 七夕节 数论

七夕节 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Description 七夕节那天,月老来到数字王国,他在城门上贴了一张告示,并且和数字王国的人们说:"你们想知道你们的另一半是谁吗?那就按照告示上的方法去找吧!" 人们纷纷来到告示前,都想知道谁才是自己的另一半.告示如下: 数字N的因子就是所有比N小又能被N整除的所有正整数,如12的因子有1,2,3,4,6. 你想知