/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 35ms 11.77 MiB
#2 Accepted 55ms 12.773 MiB
#3 Accepted 49ms 12.816 MiB
#4 Accepted 49ms 12.621 MiB
#5 Accepted 53ms 12.871 MiB

Code

#include <bits/stdc++.h>
using namespace std;

const int MAX_N = 1000000;
int divisor_count[MAX_N + 1];
long long prefix_sum[MAX_N + 1];

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    // Initialize divisor counts to 0
    memset(divisor_count, 0, sizeof(divisor_count));

    // Sieve to count number of divisors for each number
    for (int i = 1; i <= MAX_N; i++) {
        for (int j = i; j <= MAX_N; j += i) {
            divisor_count[j]++;
        }
    }

    // Compute prefix sums of divisor counts
    prefix_sum[0] = 0;
    for (int i = 1; i <= MAX_N; i++) {
        prefix_sum[i] = prefix_sum[i-1] + divisor_count[i];
    }

    int T; cin >> T;
    while (T--) {
        int N; cin >> N;
        // answer = sum of divisors counts from 1..N - N
        cout << prefix_sum[N] - N << "\n";
    }

    return 0;
}

Information

Submit By
Type
Submission
Problem
P1206 D1. GCD equal Absolute Value (Easy Version)
Contest
Educational Round 1
Language
C++17 (G++ 13.2.0)
Submit At
2025-07-14 16:17:42
Judged At
2025-07-14 16:17:42
Judged By
Score
100
Total Time
55ms
Peak Memory
12.871 MiB