七夕节
来源:互联网 发布:sql存储过程打印参数 编辑:程序博客网 时间:2024/04/28 17:55
七夕节
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 35175 Accepted Submission(s): 11012
Problem Description
七夕节那天,月老来到数字王国,他在城门上贴了一张告示,并且和数字王国的人们说:"你们想知道你们的另一半是谁吗?那就按照告示上的方法去找吧!"
人们纷纷来到告示前,都想知道谁才是自己的另一半.告示如下:
数字N的因子就是所有比N小又能被N整除的所有正整数,如12的因子有1,2,3,4,6.
你想知道你的另一半吗?
人们纷纷来到告示前,都想知道谁才是自己的另一半.告示如下:
数字N的因子就是所有比N小又能被N整除的所有正整数,如12的因子有1,2,3,4,6.
你想知道你的另一半吗?
Input
输入数据的第一行是一个数字T(1<=T<=500000),它表明测试数据的组数.然后是T组测试数据,每组测试数据只有一个数字N(1<=N<=500000).
Output
对于每组测试数据,请输出一个代表输入数据N的另一半的编号.
Sample Input
321020
Sample Output
1822
Author
Ignatius.L
思路:参考博客http://www.cnblogs.com/kuangbin/archive/2011/07/23/2114997.html 两个方法~写的很好
大众思路肯定是超时的了。我开始就超时了。可以改善一下,算到算数平方根就停止。
#include<iostream>#include<stdio.h>#include<math.h>#include<string.h>using namespace std;int main(){ int T,a,i,sum,t; cin>>T; while(T--) { sum=1; cin>>a; t=sqrt(a); for(i=2;i<=t;i++) { if(a%i==0) { sum+=i; if(i!=a/i) sum+=a/i; } } cout<<sum<<endl; }}
还有一个打表的方法,我直接从大神上面粘来了:
#include<stdio.h>#include<iostream>using namespace std;const int MAXN=500000;int f[MAXN+1];void vext(){ int i,j; f[0]=f[1]=0; for(i=1;i<=MAXN/2;i++) for(j=i*2;j<=MAXN;j+=i) f[j]+=i;}int main(){ int T; int n; cin>>T; vext(); while(T--) { scanf("%d",&n); printf("%d\n",f[n]); } return 0; }
0 0
- 七夕节
- 七夕节
- 七夕节
- 七夕节
- 七夕节
- 七夕节
- 七夕节
- 七夕节
- 七夕节
- 七夕节
- 七夕节
- 七夕节
- 七夕节
- 七夕节
- 七夕节
- 七夕节
- 七夕节
- 七夕节
- caffe示例实现之3使用底层C++ API进行图像分类
- 这个问题挺有意思的。多线程处理,互斥锁和syn同步锁
- 2015Android开发环境的建立
- TCPclose相关
- solr简单操作
- 七夕节
- 一个男人成熟表现在哪些方面
- DataGridView 列宽和行高自动调整的设定
- LeetCode(92) Reverse Linked List II
- DNS服务器下所有的域名解析不到NS服务器?
- 整体框架选择
- Hive 不同存储格式表数据同步问题
- Search Insert Position
- java 解析excel2007