http://acm.hdu.edu.cn/showproblem.php?pid=1215

题目大意:

找对象的题。。。汗。。将你的编号(唯一)的所有因子加起来,所得到的的另一个编号的主人就是你的另一半。给出你的编号,要求找到你的对象的编号。

一开始直接模拟TLE。

然后后来看到别人是这么做的:

#include<cstdio>
#include<string> int main()
{
int T;
scanf("%d",&T);
while(T--)
{
int n;
scanf("%d",&n);
int cur=2;
int ans=1;
for(int i=2;(i>>1)<=n;i++) //将问题规模减半
{
if(n%i==0)
{
if(n/i > i) //如果把不等于i,那么说明i和n/i都是因子
ans+=n/i+i;
else if(n/i==i) //等于i就一个因子
ans+=i;
else //如果n/i<i说明因子算完了。。
break;
} }
printf("%d\n",ans);
}
return 0;
}

后来采用类似筛选素数的方法,打表。

我们先将2的倍数的都+上2.。。3的倍数都加上3、。。。。

要注意的是如果n==1的时候答案为0.

#include<cstdio>
const int MAXN=500000+1;
const int N=250000;
int ans[MAXN]={0};
int main()
{
for(int i=2;i<MAXN;i++)
for(int j=i+i;j<MAXN;j+=i)
ans[j]+=i; ans[1]=-1; int T;
scanf("%d",&T);
while(T--)
{
int n;
scanf("%d",&n);
printf("%d\n",ans[n]+1);
}
return 0;
}

最新文章

  1. 如何在Notepad++ 中成功地安装Emmet 插件
  2. Java基础知识总结(绝对经典)
  3. 编译fdk-aac for ios
  4. LeetCode Pow(x, n) (水题)
  5. 关于使用 Connect-Busboy 实现文件上传 优化说明
  6. MySQL查询执行过程
  7. 七行jquery代码实现图片渐变切换【兼容ie6+、 Chrome、 Firefox】
  8. [Javascript] Advanced Reduce: Common Mistakes
  9. Httprequest 获取url 常用方法
  10. vim编辑器的使用技巧
  11. java类型转化
  12. Elasticsearch之删除索引
  13. 转:从输入url到显示网页发生了什么
  14. 小妖精的完美游戏教室——buff系统
  15. Redis自学笔记:4.2进阶-过期时间
  16. 学习 MeteoInfo二次开发教程(四)
  17. 安装Python 3.6
  18. 20145319 《网络渗透》Adobe阅读器渗透攻击
  19. 构建工具 Ant、Maven和Gradle
  20. 【转】深入理解Java的接口和抽象类

热门文章

  1. Statement和ResultSet
  2. Socket实例之客户端向服务端数据库上传文件UI版
  3. tomcat:web容器
  4. c# winform 技术提升
  5. Qt自定义类型使用QHash等算法(Qt已经自定义了34种类型,包括int, QString, QDate等基本数据类型)
  6. AQS -&gt; AbstractQueuedSynchronizer
  7. php中类文件名的命名的规则是什么
  8. 基于Linux系统WINE虚拟机技术的研究
  9. File Upload with Jersey
  10. 让我们彻底看清MVC、MVP