첫번째 코드
사실 문제를 보고 풀만하지 않나...라고 생각했는데
진행하면 진행할수록 머리속이 뒤죽박죽 개판새판일 돌아가버렸다...
그래서 책을 참고하여 코드를 작성했다..
근데 문제는 아직 책의 코드를 온전히 이해하지 못했다.
다음에 조금 더 천천히 생각하면서 다시 풀어보아야 하는 문제라고 생각한다...
추후 코드에 대한 온전한 이해가 되고 추가적인 설명이 필요하면 추가하도록 하자!
import sys
import math
input = sys.stdin.readline
n, m = map(int, input().split())
A = [False] * (m - n + 1)
for i in range(2, int(math.sqrt(m) + 1)):
divisor = i * i
index = int(n / divisor)
if n % divisor != 0:
index += 1
for j in range(index, int(m / divisor) + 1):
A[int((j * divisor) - n)] = True
answer = 0
for i in range(m - n + 1):
if not A[i]:
answer += 1
print(answer)
통과!
링크
programmers/백준/Gold/1016. 제곱 ㄴㄴ 수 at main · ornni/programmers
repository for recording Programmers Algorithm problem solving - ornni/programmers
github.com
'코딩 테스트 > do it! 알고리즘 코딩테스트' 카테고리의 다른 글
042 최소공배수 (0) | 2024.06.11 |
---|---|
039 소수&팰린드롬 (2) | 2024.06.06 |
037 소수 구하기 (0) | 2024.06.04 |
038 거의 소수 (0) | 2024.06.04 |
036 잃어버린 괄호 (0) | 2024.05.30 |