정답 코드
소인수분해를 하지않고
소인수들이 10의 6승 이하가 되면 안된다는 조건에 중심으로 두는 코드
n = int(input())
for tc in range(n):
s = int(input())
for i in range(2,10**6 +1):
if s%i ==0:
print('NO')
break
elif i == 10**6:
print('YES')
시간초과되는 코드
def find(arr):
for i in range(len(arr)):
if arr[i] < 10**6:
return 'NO'
return 'YES'
n = int(input())
for tc in range(n):
s = int(input())
prime_list = []
i = 2
while i <= s**(1/2):
if s % i != 0:
i += 1
continue
# if s%i ==0 and s//i >= 10**6:
while s % i == 0 and s!=0:
s //= i
prime_list.append(i)
i += 1
# print(prime_list)
print(find(prime_list))
'알고리즘 문제풀이' 카테고리의 다른 글
백준 12437 새로운 달력 Python 수학 구현 실버5 (1) | 2024.03.06 |
---|---|
백준 1292 쉽게 푸는 문제 Python 수학 브론즈1 (0) | 2024.03.06 |
백준 1076 저항 Python 구현 브론즈2 (0) | 2024.03.06 |
백준 1094 막대기 Python 수학 실버5 (0) | 2024.03.06 |
백준 1010 다리 놓기 Python 조합 실버5 (1) | 2024.03.06 |