답안 #75087

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
75087 2018-09-08T09:40:39 Z charlies_moo Savrsen (COCI17_savrsen) C++17
60 / 120
2198 ms 39912 KB
#include <iostream>
#include <cmath>

using namespace std;

int main() {
	int p[4000];
    int pc = 0;
    for (int i = 2; i < 4000; i++) {
        bool f = true;
        for (int j = 0; j < pc; j++) {
            if (i % p[j] == 0) {
                f = false;
                break;
            }
        }

        if (f) {
            p[pc++] = i;
        }
    }
    
    int a, b;
    cin >> a >> b;

	int f[b+1];
	f[1] = 1;
	for (int i = 2; i <= b; i++) {
		int q = 0;
		for (int j = 0; j < pc; j++) {
			if (i % p[j] == 0) {
				q = p[j];
				break;
			}
		}
		
		if (q) {
			int t = q, s = 1;
			while (i % t == 0) {
				s += t;
				t *= q;
			}
			t /= q;
			f[i] = s * f[i/t];
		} else {
			f[i] = i + 1;
		}
	}
	
	long long ans = 0;
	for (int i = a; i <= b; i++) {
		ans += abs(f[i] - i - i);
	}

    cout << ans << endl;

    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 376 KB Output is correct
2 Correct 3 ms 484 KB Output is correct
3 Correct 28 ms 800 KB Output is correct
4 Correct 2198 ms 39808 KB Output is correct
5 Incorrect 2164 ms 39808 KB Output isn't correct
6 Incorrect 2168 ms 39912 KB Output isn't correct
7 Incorrect 1987 ms 39912 KB Output isn't correct
8 Incorrect 557 ms 39912 KB Output isn't correct