소수찾기 문제!
음.. 우선 input을 받고
해당 input 을 for loop로 인자를 하나씩 전달하며 소수를 판별해야겠다는 생각을 했다!
예외처리로 소수가 아닌 case인 1에 대해서 처리를 해야겠다는 생각을 했다.
그리고 가장 중요한 논리 부분으로 i squared 가 해당 값보다 작을 때까지 loop를 돌리면서 그 소인수로 나누면서 나누어 떨어지는 수가 있는지 검사했다! 이렇게 해서 내 알고리즘의 big O notation은 (nlogn)이다.
갯수를 반환하기 위해 list에 append하고 length를 재는 것과
static variable을 이용하는 두 가지 방법을 생각했는데 static variable을 이용해서 해결했다!
근데 이게 실버라고 해서 깜짝 놀람 ㅋㅋ
n = int(input())
card = list(map(int, input().split()))
def find_prime(_card):
i = 2
if _card <= 1:
return 0
while i*i <= _card:
if _card % i == 0:
return 0
i += 1
find_prime.count += 1
return 0
find_prime.count = 0
for i in range(n):
find_prime(card[i])
print(find_prime.count)
만약 input data 중에 2, 3이 있더라도 2, 3은 자동으로 소수이기 때문에 바로 static variable을 증가시키도록 설계했다!