Submission #1354403

#TimeUsernameProblemLanguageResultExecution timeMemory
1354403luvwinterSavrsen (COCI17_savrsen)C++20
0 / 120
129 ms78712 KiB
#include<bits/stdc++.h>
using namespace std;
#define pii pair<int , int>
#define fi first
#define se second
#define FOR(i , l , r) for(int i = (l) ; i <= (r); i++)
#define FOD(i , r , l) for(int i = (r) ; i >= (l) ; i--)
#define endl '\n'
const int N = 1e7 + 1;
int prime[N];
int mnprime[N];
void sang() {
    FOR(i , 1 , N - 1) prime[i] = 1;
    prime[1] = 0;
    FOR(i , 2 ,  N - 1) {
        if(prime[i]) {
            mnprime[i] = i;
            for(int j = i * i ; j <= N - 1 ; j += i) {
                 prime[j] = 0;
                 if(mnprime[j] == 0) mnprime[j] = i;
            }

        }
    }
}
int power(int a , int b) {
    if(b == 0) return 1;
    int t = power(a , b / 2);
    t *= t;
    if(b % 2) t *= a;
    return t;
}

int sumofdiv(int n) {
     if(n == 1) return 1;
     int orn = n;
     int total = 1;
     int currprime = mnprime[n];
     int cnt = 1;
     n /= mnprime[n];
     while(n > 1) {
          if(currprime != mnprime[n]) {
              int sum = 0;
              for(int j = 0 ; j <= cnt ; j++) {
                   sum += power(currprime ,j);
              }

              total *= (sum);
              currprime = mnprime[n];
              cnt = 1;
          }
          else{
              cnt++;
          }
          n /= mnprime[n];

     }
     if(cnt) {
         int sum = 0;
         for(int j = 0 ; j <= cnt ; j++) {
             sum += power(currprime , j);
         }
         total *=  sum;
     }

     return abs(orn - (total - orn));

}



void solve () {
    int a , b; cin >> a >> b;
    int res = 0;
    FOR(i , a , b) {
        res += sumofdiv(i);
    }
    cout << res;
      // cout << sumofdiv(6);


}



main () {
    ios_base :: sync_with_stdio(false);
    cin.tie(NULL);
    sang();
    solve();

    return 0;
}

Compilation message (stderr)

savrsen.cpp:86:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   86 | main () {
      | ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...