NC17450. 因数个数和
描述
输入描述
第一行一个正整数q ;
接下来q行,每行一个正整数 x
输出描述
共q行,每行一个正整数表示答案
示例1
输入:
4 1 2 3 10
输出:
1 3 5 27
说明:
1的因数有1C++14(g++5.4) 解法, 执行用时: 4ms, 内存消耗: 484K, 提交时间: 2018-08-24 19:32:16
#include<bits/stdc++.h> using namespace std; int main(){ int q; cin>>q; while(q--){ int n; cin>>n; long long sum=0; for (int i=1;i<=sqrt(n);i++) sum+=n/i; cout<<2*sum-((int)sqrt(n))*((int)sqrt(n))<<endl; } }
C++ 解法, 执行用时: 5ms, 内存消耗: 416K, 提交时间: 2022-07-13 10:07:51
#include<bits/stdc++.h> using namespace std; typedef long long s64; int main() { int tt; cin>>tt; while(tt--) { int n; cin>>n; s64 ans=0; for(int x=1;x*x<=n;++x)ans+=(n/x-x)*2+1; cout<<ans<<endl; } }
Python3(3.5.2) 解法, 执行用时: 411ms, 内存消耗: 3556K, 提交时间: 2019-02-10 13:24:05
q = int(input()) for u in range(q): n = int(input()) l= 1 ans = 0 while l <= n: r = n // (n // l) ans += (r - l + 1) * (n // l) l = r + 1 print(ans)