위 코드 에라토스테네스의 체 맞나요..?
아무튼 어떤 수 N이 소수인지 판단하려면 N의 제곱근까지만 확인하면 되기 때문입니다.
N=x*y인 x,y가 있다면, 둘 중 작은 수는 N의 제곱근보다 클 수 없으니까요.
예를 들어 100을 판단하려면, 10까지만 나누어 보면 됩니다
100은 20으로도, 50으로도 나누어 떨어지지만, 이는 5로, 2로 나누어보는 결과와 다를게 없으니까요
1929번 - 소수 구하기
위 코드 에라토스테네스의 체 맞나요..?
아무튼 어떤 수 N이 소수인지 판단하려면 N의 제곱근까지만 확인하면 되기 때문입니다.
N=x*y인 x,y가 있다면, 둘 중 작은 수는 N의 제곱근보다 클 수 없으니까요.
예를 들어 100을 판단하려면, 10까지만 나누어 보면 됩니다
100은 20으로도, 50으로도 나누어 떨어지지만, 이는 5로, 2로 나누어보는 결과와 다를게 없으니까요
댓글을 작성하려면 로그인해야 합니다.
hoodyo 2년 전
for I in range(2, int(num ** 0.5) + 1 ) 이 부분에 이해가 좀 안되네요 ..
num ** 0.5라고 하면, num의 1/2 제곱인데 1/2 제곱은 루트 가 씌어지지 않나요 ?
가령, 2루트라고 하면 1.414가 될 것이고, 3이라고 하면 1.6 .. 의 수가 될텐데, 어째서 이 수가 for문에 쓰이는지
궁금합니다. range(2, 1.414) 대입해보면 이런 그림이 나오는데, 통 이해가 안되네요!