hdu1215

七夕节

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 3742 Accepted Submission(s): 1328
 

Problem Description

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

数字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

 1 /*
 2 1.筛选法*/
 3 #include<iostream>
 4 #include<cmath>
 5 using namespace std;
 6
 7 int main()
 8 {
 9     int t,n,i,sum,j,m;
10     cin>>t;
11     while(t--)
12     {
13         sum=1;
14         cin>>n;
15         m=(int)sqrt( double ( n ) );
16
17         for(i=2;i<=m;i++)
18             if(n%i==0)
19             {
20                 sum +=i;
21                 j=n/i;
22                 if(i!=j)
23                     sum +=j;
24             }
25         cout<<sum<<endl;
26     }
27     return 0;
28 }
29
30 /*这个方法我是网上学的,但不知道为什么提交不了
31
32 //打表法
33 #include<iostream>
34 #define M 500001
35 using namespace std;
36
37 int a[M];
38 int main()
39 {
40     int i,j,n,t;
41
42     for(i=1;i<=500000;i++)
43         for(j=i+i;j<=250001;j +=i)
44             a[j] +=i;
45     //while(scanf("%d",&t)!=EOF)
46     scanf("%d",&t);
47
48         while(t--)
49         {
50             cin>>n;
51             cout<<a[n]<<endl;
52         }
53
54     return 0;
55 }
56 */

这个题用一般的方法会超时,学到新的东西是

  m=(int)sqrt( double ( n ) );(将double类型的数转换为int型)

hdu1215,布布扣,bubuko.com

时间: 2024-11-04 23:21:27

hdu1215的相关文章

hdu1215七夕节 筛选法求公因子和

hdu1215七夕节 数据量比较大,筛选法求公因子和即可. #include <iostream> #include<cstdio> #include<string.h> #define maxn 500005 using namespace std; int ans[maxn]; int main() { int cas; int n; cin >> cas; memset(ans,0,sizeof(ans)); for(int i = 1;i <

hdu1215七夕节-(埃氏筛+唯一分解定理)

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

HDU1215 七夕节(因子之和)

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

hdu1215 正整数唯一分解定理应用

B - (例题)因子和 Crawling in process... Crawling failed Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Description 七夕节那天,月老来到数字王国,他在城门上贴了一张告示,并且和数字王国的人们说:"你们想知道你们的另一半是谁吗?那就按照告示上的方法去找吧!" 人们纷纷来到告示前,都想知道谁才

hdu1215 The area

hdu 1215 The area 算抛物线和直线解析式,简单积分 #include <iostream> #include<cstdio> using namespace std; double p2x,p2y,p1x,p1y,p3x,p3y; double a,b,c,a1,b1; double ans; void solve1() { //求直线 a1 = (p3y-p2y)/(p3x-p2x); b1 = (p2y - p2x*a1); //求抛物线解析式 double t

hdu1215七夕节

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

《程序设计技术》课程辅助学习资料

本文档提供课程相关的辅助学习资料. 阅读程序是提高程序设计水平的最为有效的方法,<程序设计技术>课程至少应该阅读后面提供链接博文中的基础部分.能够阅读完基础部分的博文,则可以给课程学习奠定一个坚实的基础. 自己编写程序也是学习编程必不可少的一个环节.自己编写是否正确可以通过OJ系统来验证.选做OJ的程序设计题方便于评价自己所写的程序是否正确.想要提高编写程序的能力并且达到更高的水平,从各个OJ中选做一些编程题是十分必要的. 文中提供了CCF-CSP认证考试历年 试题的第1题的题解.这些题解中都

七夕节 HDU - 1215 (唯一分解 素数筛法 因子之和加强版)

七夕节 HDU - 1215 题目链接:https://vjudge.net/problem/HDU-1215#author=0 题目: 七夕节那天,月老来到数字王国,他在城门上贴了一张告示,并且和数字王国的人们说:"你们想知道你们的另一半是谁吗?那就按照告示上的方法去找吧!" 人们纷纷来到告示前,都想知道谁才是自己的另一半.告示如下: 数字N的因子就是所有比N小又能被N整除的所有正整数,如12的因子有1,2,3,4,6. 你想知道你的另一半吗? Input输入数据的第一行是一个数字T