# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
466953 | XBoRickie | Savrsen (COCI17_savrsen) | C++11 | 620 ms | 117688 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#define ll long long
#define fr first
#define sc second
#define mp make_pair
#define pb push_back
#define LEFT(a) ((a)<<1)
#define RIGHT(a) (LEFT(a) + 1)
#define MID(a,b) ((a+b)>>1)
using namespace std;
const int MOD=1e9+7,N=1e7;
const ll INF=1e18;
int A,B;
int prime[N+5];
ll f[N+5];
ll x,y,z,t;
ll ans;
int main(){
for (int i=2;i*i<=N;i++)
if (prime[i]==0)
for (int j=i*i;j<=N;j+=i)
if (prime[j]==0)
prime[j]=i;
cin>>A>>B;
f[1]=1;
for (int i=2;i<=B;i++){
if (prime[i]==0){
f[i]=i+1;
continue;
}
x=i;
y=0;
z=1;
t=1;
while (x%prime[i]==0){
t*=prime[i];
z+=t;
y++;
x/=prime[i];
}
f[i]=f[x]*z;
}
for (int i=A;i<=B;i++)ans+=abs(f[i]-2*i);
cout<<ans<<endl;
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |