結果

問題 No.2724 Coprime Game 1
ユーザー MasKoaTSMasKoaTS
提出日時 2024-01-03 21:11:59
言語 C
(gcc 12.3.0)
結果
TLE  
実行時間 -
コード長 974 bytes
コンパイル時間 183 ms
コンパイル使用メモリ 34,816 KB
実行使用メモリ 41,760 KB
最終ジャッジ日時 2024-04-12 20:50:44
合計ジャッジ時間 3,873 ms
ジャッジサーバーID
(参考情報)
judge3 / judge1
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 11 ms
11,812 KB
testcase_01 AC 11 ms
6,944 KB
testcase_02 AC 9 ms
6,944 KB
testcase_03 TLE -
testcase_04 -- -
testcase_05 -- -
testcase_06 -- -
testcase_07 -- -
権限があれば一括ダウンロードができます

ソースコード

diff #

// TLE?

#pragma GCC target("avx2")
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")

#include <stdio.h>
#define T_MAX 100000
#define N_MAX 3000000


int main(void){
    int t;  scanf("%d", &t);
    int query[T_MAX];
    for(int i = 0; i < t; ++i){
        scanf("%d", &query[i]);
    }

    char is_not_prime[N_MAX + 1] = {0};
    for(int i = 2; i * i < N_MAX + 1; ++i){
        if(is_not_prime[i] == 1){
            continue;
        }
        for(int j = i * i; j < N_MAX + 1; j += i){
            is_not_prime[j] = 1;
        }
    }

    for(int i = 0; i < t; ++i){
        int n = query[i];
        if(is_not_prime[n] == 0){
            printf("%c\n", 'P');
            continue;
        }
        int cnt = n - 2;
        for(int j = n / 2 + 1; j < n; ++j){
            cnt -= is_not_prime[j] ^ 1;
        }
        if(cnt & 1){
            printf("%c\n", 'K');
        }
        else{
            printf("%c\n", 'P');
        }
    }

    return 0;
}
0