結果

問題 No.889 素数!
ユーザー Theta
提出日時 2022-11-02 17:12:05
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
AC  
実行時間 31 ms / 2,000 ms
コード長 968 bytes
コンパイル時間 98 ms
コンパイル使用メモリ 12,672 KB
実行使用メモリ 10,880 KB
最終ジャッジ日時 2024-07-17 06:19:19
合計ジャッジ時間 3,832 ms
ジャッジサーバーID
(参考情報)
judge5 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 61
権限があれば一括ダウンロードができます

ソースコード

diff #

from itertools import count


def calc_prime_numbers(upper: int) -> list[int]:
    prime_numbers = []
    for number in range(2, upper+1):
        for prime in prime_numbers:
            if number % prime == 0:
                break
        else:
            prime_numbers.append(number)
    return prime_numbers


def main():
    N = int(input())
    primes = calc_prime_numbers(64)
    square_numbers = []
    for num in count(2):
        if (sq := num ** 2) > 64:
            break

        square_numbers.append(sq)

    cubic_numbers = []
    for num in count(2):
        if (cub := num ** 3) > 64:
            break

        cubic_numbers.append(cub)

    perfect_numbers = [6, 28]

    if N in primes:
        print("Sosu!")
    elif N in square_numbers:
        print("Heihosu!")
    elif N in cubic_numbers:
        print("Ripposu!")
    elif N in perfect_numbers:
        print("Kanzensu!")
    else:
        print(N)


if __name__ == "__main__":
    main()
0