NC204916. 浅尝辄止
描述
输入描述
1<=n<=10^13
示例1
输入:
5
输出:
10
示例2
输入:
10
输出:
27
Go(1.9.1) 解法, 执行用时: 200ms, 内存消耗: 944K, 提交时间: 2020-07-18 22:25:25
package main /** * * @param n long长整型 * @return int整型 */ func work( n int64 ) int { // write code here var p int=998244353 var res int=0 r:=0 l:=1 nn:=int(n) for ;l<=nn;l=r+1{ r=nn/(nn/l) res+= ((r-l+1)*(nn/l)) res %=p } return res }
Python3(3.5.2) 解法, 执行用时: 3219ms, 内存消耗: 6520K, 提交时间: 2020-07-19 18:40:33
class Solution: def work(self, n): i = n ans = 0 while i > 0: ans += (i - n // (n // i + 1)) * (n // i) ans %= 998244353 i = n // (n // i + 1) return ans
C++ 解法, 执行用时: 182ms, 内存消耗: 504K, 提交时间: 2021-09-26 16:45:31
class Solution { public: long long mod=998244353; long long work(long long n) { long long ans=0; for(long long l=1,r;l<=n;l=r+1) { r=n/(n/l); ans=(ans+(n/l)*(r-l+1))%mod; } return ans; } };
C 解法, 执行用时: 180ms, 内存消耗: 512K, 提交时间: 2021-10-21 19:40:24
/** * * @param n long长整型 * @return int整型 */ int work(long long n ) { // write code here long long sum=0,i,t; for(i=1;i<=n;i=t+1) {t=n/(n/i);sum+=(t-i+1)*(n/i);} return sum%998244353;}