求 1 到 n 的所有数的约数和

暴力方法就是枚举每个数,算出他的约数和即可,这样有点慢。

另一种思路,枚举约数,判断他是谁的约数,并记录(即他的倍数有多少个),在乘以他自己。

n/i求的是n以内,i的倍数有多少个,在乘以i即可。

可以发现,枚举到n/2时,往后的所有数的倍数只有他自己,n/i = 1(i>n/2),这里可以用数学方法算出。

代码:

 #include<cstdio>

 int main()
{
int n,ans = ;
scanf("%d",&n); for (int i=; i<=n; ++i)
{
ans += (n/i)*i;
} printf("%d",ans); return ;
}

最新文章

  1. 如何获取ResultSet的行数和列数
  2. 在服务器上发布MVC5的应用
  3. 记录一些在用wcf的过程中走过的泥巴路 【第一篇】
  4. android自定义控件(9)-Android触摸事件分发机制
  5. eclipse web项目转maven项目
  6. Linux命令学习-grep
  7. 使用mysql服务来记录用户的反馈
  8. HDU 4752 Polygon(抛物线长度积分)
  9. USB interrupt传输和isochronous传输的区别
  10. js文字滚动效果实现
  11. 记一次电信反射xss的挖掘与利用
  12. Saltstack 集中化管理平台安装
  13. openstack搭建之-horizon配置(14)
  14. iview table 实现在数据中自定义标识
  15. Vue(七)发送Ajax请求
  16. Maven多模块项目
  17. 【C#】C#操作Excel文件(转)
  18. ASP.NET OAuth、jwt、OpenID Connect
  19. 转:OGRE 渲染通路(Pass)
  20. html5中audio的详细使用

热门文章

  1. KBEngine warring项目源码阅读(三) 实体文件与Account处理
  2. 安卓usb数据接收
  3. Java中的while循环——通过示例学习Java编程(10)
  4. datagrid数据表格使用总结
  5. JeeSite 工作流Activiti的应用实例
  6. ASP.NET Dev ASPxGridView控件使用 ASP.NET水晶报表打印
  7. bzoj1189 [HNOI2007]紧急疏散
  8. java基础编程——用两个栈来实现一个队列
  9. LigerUi中表(Grid)控件的相关属性笔记
  10. AJAX进行分页