whoami

学んだことや考えたことのアウトプットをします。AtCoder@japanesekeigo Twitter@keigopiano

isPrime

AOJの問題
Aizu Online Judge

Python 3系で実装
filter関数やlambda関数を使ってみた。

なんか美しくはない気がする。もっと綺麗にかけないものかね。

def isPrime(num):
    if num == 2 or num == 3:
        return True
    elif num % 2 == 0:
        return False

    p = 3
    sqrt_num = int(num ** 0.5)
    while True:
        if num % p == 0:
            return False

        if sqrt_num >= p:
            p += 2
        else:
            return True


n = int(input())
input_num = [int(input()) for _ in range(n)]

print(len(list(filter(lambda x: isPrime(x), input_num))))