#include<bits/stdc++.h>
using namespace std;
using ll = long long;
using pii = pair<int,int>;
#define int long long
const int N = 2e6+10;
const int inf = 0x3f3f3f3f;
const int mod = 1e9+7;
int gcd(int a,int b){return b?gcd(b,a%b):a;}
int lcm(int a,int b){return a*b/gcd(a,b);}
int qmi(int a,int b,int mod){int res=1;while(b){if(b&1)res=res*a%mod;b>>=1;a=a*a%mod;}return res;}
int n,q,m;
int ol[N];
int primes[N];
bool vis[N];
int cnt;
void init()
{
ol[1] = 1;
for(int i=2;i<=1000010;++i){
if(!vis[i]){
primes[++cnt] = i;
ol[i] = i-1;
}
for(int j=1;primes[j]<=1000010/i;++j){
vis[i*primes[j]] = true;
if(i%primes[j]==0){
ol[i*primes[j]] = primes[j]*ol[i];
break;
}else ol[i*primes[j]] = ol[i]*(primes[j]-1);
}
}
ol[1] = 3;
//cout<<ol[2]<<"\n";
for(int i=2;i<=1000000;++i)ol[i] = ol[i]*2+ol[i-1];
//cout<<ol[2]<<"\n";
}
void solve()
{
cout<<ol[n]<<"\n";
}
signed main()
{
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
init();
//int _;
//cin>>_;
//_ = 1;
while(cin>>n)solve();
return 0;
}
F-老板的连线 可见的点原题
最新推荐文章于 2024-10-03 23:25:47 发布
本文介绍了如何使用C++编写代码,包括欧拉totient函数的计算以及线性筛法的实现,用于求解与整数分解相关的问题。
摘要由CSDN通过智能技术生成