Submission #492631

#TimeUsernameProblemLanguageResultExecution timeMemory
492631dz001Savrsen (COCI17_savrsen)C++11
0 / 120
5 ms2508 KiB
#include <bits/stdc++.h> using namespace std; #define sqr(x) (x)*(x) const int N=1e6+10; vector<int> pr; bool primes[N]; int a,b; void sieve(){ primes[0]=primes[1]=1; for(int i=2;i<N-3;++i){ if(!primes[i]){ for(int j=i*i;j<N-3;j+=i)primes[j]=1; pr.push_back(i); } } } long long sumDiv(int x){ long long kq=1; for(int i=0;i<pr.size()&&sqr(pr[i])<=x;++i){ long long cur=pr[i],tot=1; while(x%pr[i]==0){ x/=pr[i]; tot+=cur; cur*=pr[i]; } kq*=tot; } if(x>1)kq*=(x+1); return kq; } signed main() { ios::sync_with_stdio(NULL); cin.tie(nullptr); sieve(); cin>>a>>b; long long ans=0; for(int i=a;i<=b;++i){ ans+=abs(2LL*i-sumDiv(i)); } cout<<ans; }

Compilation message (stderr)

savrsen.cpp: In function 'long long int sumDiv(int)':
savrsen.cpp:23:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   23 |     for(int i=0;i<pr.size()&&sqr(pr[i])<=x;++i){
      |                 ~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...