Solution of ZOJ 2095 Divisor Summation (Online Version)

本文介绍了一个有效的在线算法,用于计算一个给定自然数的所有真因数之和,适用于数值范围1到500000。通过避免使用标准库中的输入输出方法以减少运行时间,并采用独特的算法设计确保了效率。
部署运行你感兴趣的模型镜像

Give a natural number n (1 <= n <= 500000), please tell the summation of all its proper divisors.

Definition: A proper divisor of a natural number is the divisor that is strictly less than the number.

e.g. number 20 has 5 proper divisors: 1, 2, 4, 5, 10, and the divisor summation is: 1 + 2 + 4 + 5 + 10 = 22.

 


Input

An integer stating the number of test cases, and that many lines follow each containing one integer between 1 and 500000.


Output

One integer each line: the divisor summation of the integer given respectively.


Sample Input

3
2
10
20


Sample Output

1
8
22



Source: ZOJ Monthly, March 2004


分析:此题关键点在I/O部分,如果是用C++标准库中的cin和cout对象,则将超时。网上提供的大部分算法都是基于查表的方法,这里给出一个我实现的可Accept的online算法,所占内存只需188KB。

 

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值