[문제]

 

[내 코드]

_ = input()
temp = [int(i) for i in input().split()]
print(len([t for t in temp if len([i for i in range(1, t+1) if t%i == 0])==2]))

약수의 개수가 두 개인 숫자의 갯수를 구하는 방식을 썼다

- 하지만 약수의 개수를 모두 구하는 대신에, 다른 수로 나누어지는 수를 먼저 탈락시키는 방법을 쓰면 조금 더 빠르지 않을까..

 

 

[개선안]

_ = int(input())
temp = [int(i) for i in input().split()]
cnt=0
for t in temp:
    for i in range(2, t+1):
        if t%i==0:
            if t == i:
                cnt += 1
            break
print(cnt)

- 2부터 자기 자신까지 나누어가는데, 나누어떨어질 때 자기 자신이면 cnt를 더하고, 자기자신이 아니면 break한다

68ms로 살짝 더 빨랐다

복사했습니다!