제출 #1350451

#제출 시각아이디문제언어결과실행 시간메모리
1350451hanguyendanghuySavrsen (COCI17_savrsen)C++20
0 / 120
311 ms156988 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define fi first
#define se second
#define all(x) x.begin(),x.end()
const ll MAXN=1e7+5,MOD=1e9+7,INF=1e18,LG=16,MAX=1e7;
ll i,n,m,j,k,p,t,a[MAXN],nt[MAXN],luu[MAXN];
int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    ll l,r;
    cin>>l>>r;
    for(i=2;i<=MAX;i++){
        if(!nt[i]){
            for(j=i;j<=MAX;j+=i)
                nt[j]=i;
        }
    }
    luu[1]=1;
    for(i=2;i<=r;i++){
        ll cur=nt[i];
        ll x=i/cur;
        m=i;
        while(m%cur==0){
            m/=cur;
        }
        if(x%cur==0){
            luu[i]=luu[x]*(i/m*cur-1)/(i/m-1);
        }
        else luu[i]=luu[x]*(i/m*cur-1)/(cur-1);
    }
    ll ans=0;
    for(i=l;i<=r;i++){
        ans+=2*i-luu[i];
    }
    cout<<ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...