제출 #1354408

#제출 시각아이디문제언어결과실행 시간메모리
1354408luvwinterSavrsen (COCI17_savrsen)C++20
120 / 120
361 ms39568 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 mnprime[N];
void sang() {

    FOR(i , 2 ,  N - 1) {
        if(mnprime[i] == 0) {
            mnprime[i] = i;
            for(long long j = 1LL * i * i ; j <= N - 1 ; j += i) {
                 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;
}

long long sumofdiv(int n) {
     if(n == 1) return 1;
     int orn = n;
     long long total = 1;
     int currprime = mnprime[n];
     int cnt = 1;
     n /= mnprime[n];
     while(n > 1) {
          if(currprime != mnprime[n]) {
              long long 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) {
         long long 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;
    long long 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;
}

컴파일 시 표준 에러 (stderr) 메시지

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