2017-04-06 5 views
0

결정 론적 Miller-Rabin 테스트의 기본 구현을 작성하려고했지만 제한된 Python 배경이 방해 받고 있습니다. 아래에 붙여 넣은 프로그램의 섹션에서 inner for 루프가 완료된 후 outer for 루프가 다른 모든 요소 위로 건너 뛴 것으로 보입니다. 왜 이것이 사실일까요?다른 모든 요소를 ​​건너 뛰는 파이썬 outer for 루프

for integer in integers: 
    print("The current integer is " + str(integer)) 
    i = 0 
    while i < len(powers): 
     print(str(integer) + "^" + str(powers[i]) + " + 1 mod N =") 
     print((pow(integer,powers[i],N) + 1)%N)  
     if (pow(integer,powers[i],N) + 1)%N == 0: 
      integers.remove(integer) 
      i += 1 
      break 
     else: 
      i += 1 
+0

당신은 루프의 후 들여 쓰기를 추가하거나 여기에 붙여 넣을 때 제거되었다 않았다 잊어 버리셨습니까? –

+0

@AquaticallyChallengedFish : 죄송합니다. 붙여 넣기 후에 들여 쓰기가 손실되었습니다. 결정된. –

+0

코드 스 니펫이 완료되지 않았습니다. '정수 ','힘 '등의 값은 무엇입니까? [최소한의 완전하고 검증 가능한 예제를 만드는 방법] (http://stackoverflow.com/help/mcve)를 참조하십시오. –

답변

-5

ifelse

외부 i += 1을 넣어 그래서

for integer in integers: 
    print("The current integer is " + str(integer)) 
    i = 0 
    while i < len(powers): 
     print(str(integer) + "^" + str(powers[i]) + " + 1 mod N =") 
     print((pow(integer,powers[i],N) + 1)%N)  
     if (pow(integer,powers[i],N) + 1)%N == 0: 
      integers.remove(integer) 

      break 
     i += 1 
+2

이것은 OP의 코드와 구문 학적으로 동일합니다. – Aaron