NC21578. 牛牛的幂运算
描述
输入描述
输入一个整数n (1 ≤ n ≤ 109)
输出描述
输出一个整数
示例1
输入:
2
输出:
6
示例2
输入:
100
输出:
21620
示例3
输入:
22306
输出:
68467
C++11(clang++ 3.9) 解法, 执行用时: 4ms, 内存消耗: 508K, 提交时间: 2020-09-20 23:09:35
#include<bits/stdc++.h> #define int long long using namespace std; const int mod=1e9+7; signed main(){ int n; cin>>n; int ans=n*(n+n-1)%mod; for(int i=2,cnt=2;i*i<=n;++i,cnt=2) for(int j=i*i;j<=n;j*=i,++cnt) for(int k=1;k<cnt;++k)if(__gcd(k,cnt)==1)ans=(ans+(n/cnt)*2%mod)%mod; cout<<ans; return 0; }