강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của immnarae5495
immnarae5495

câu hỏi đã được viết

Giới thiệu về giải bài toán bằng thuật toán Python (chuẩn bị cho bài kiểm tra viết mã)

8. Đảo thập phân

IsPrime 함수에서 for문 범위 질문 드립니다.

Viết

·

320

0

 
def isPrime(x):
'''
소수인지 판별하는 함수
'''
if x==1:
return False
for i in range(2,x//2+1):
if x%i==0:
return False
else:
return True
 
위 for문에서 범위가 2부터 x를 2로나눈 몫까지 반복되는데,
예시로 들어주신 16의 경우, i가 2,3,4,5,6,7,8까지 반복문이 돌게 됩니다.
그런데 마지막 8의 경우는 2로 나눴을 때 이미 2*8=16으로 한번 나눠지게 되니
for문에 포함이 안되어도 될 것 같은데 아닌가요?
range의 범위가 range(2,x//2)로 수정되어야 할 것 같은데, 맞는건지 궁금합니다.
 
python코테 준비 같이 해요!

Câu trả lời 3

0

사실 루트(x)+1 까지만 돌아도 소수인지 아닌지는 판별 가능합니다. range(2,x//2)를 하든 range(2,x//2+1)을 하든 결과가 같은게 그런 이유 때문이죠.

0

홀수의 경우는 절반까지 돌아야하지 않을까요?

0

range(2,x//2) 하면 x가 16일때 i는 7까지 밖에 안돌아요

혹시 원하는 답변이 아니면 죄송합니다 

Hình ảnh hồ sơ của immnarae5495
immnarae5495

câu hỏi đã được viết

Đặt câu hỏi