[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[原创代码] python求余数和

  某道ACM题,N为一万亿,%号表示取余数:计算N%1+N%2+N%3+...+N%N =?
  实际上就是求  N除以1  一直到  N除以N  的余数的和,只是N数字太大了,常规for循环一万亿次需要几十小时时间,显然是算法题,原理过于简单,不解释了,直接上代码。
  1. # Python求N%1到N%N的和
  2. N=10**12;S=0;M=int(N**0.5)
  3. for i in range(1,M+1):n=N//i-N//(i+1);a=N%(N//(i+1)+1);S+=n*a-n*(n-1)*i/2
  4. for i in range(1,M+1):S+=N%i
  5. print(int(S))
复制代码
  C语言更快只需0.01秒

返回列表