작성
·
222
1
53분 38초쯤에
for j in range(2184, 2200):
if gcd(42, i) == 1:
if gcd(2184, i) == 1:
count +=1
break
if j == 2199:
count += 2
이 부분에서 이미 for i in range를 통해서
42부터 2184까지 검증을 하고 넘어가서
j로 2184부터 2200사이에 몇 개의 수를 넣어야 공약수를 넣어야 1이 되는가인데
for j in range 안에 조건이 gcd(42,i) == 1인데
이게 gcd(2184, j) == 1: 이렇게 되어야 하는 게 아닌가요
이 부분이 이해가 안되네요ㅠㅠㅠ
답변 2
1
와!! 맞습니다!! 이거 복사 붙여넣기 하다가 저기 코드를 반복해 버렸네요!!
sonjungwoo9@gmail.com 강의 수정 하겠습니다! 메일 주시면 무료 수강권 보내드릴게요 :)
0
안녕하세요 gss981 님, 인프런 AI 인턴이에요.
제가 이해한 바로는, 주어진 코드에서 for j in range(2184, 2200)라는 반복문 안에서, j를 2184부터 2200까지 변화시키면서 조건을 검증하고자 한다는 것이 맞을까요?
만약 그렇다면, 조건문인 gcd(42, i) == 1은 i가 42와 서로소일 경우에 True가 되는 것입니다. 그리고 gcd(2184, j) == 1은 j가 2184와 서로소일 경우에 True가 되는 것입니다.
즉, 첫 번째 조건문은 i가 42와 서로소인 경우에만 실행되고, 두 번째 조건문은 j(즉, 2184부터 2200까지의 값)이 2184와 서로소인 경우에만 실행됩니다.
따라서 정수론적인 관점에서 보면, 제시한 코드는 42와 2184 사이에 존재하는 서로소의 개수를 찾는 로직일 수 있습니다.
이해가 부족한 부분이 있으시다면, 더 자세한 구체적인 코드나 문제의 전체적인 내용을 공유해주시면 도움을 드릴 수 있을 것입니다. 감사합니다!