2017-12-04 6 views
-1
def prime(upper): 
    while upper >=2: 
     for num in range(2, upper + 1): 
      prime = True 
      for i in range(2, num): 
       if (num % i == 0): 
        prime = False 
      if prime: 
       print(num, end=",") 
       if num == upper: #I think there is a problem here 
        break 
prime(7) 

이 함수가 7 값에 도달하면 어떻게 중지합니까? PS : while 루프와 함께이 코드를 실행하고 싶습니다. 당신은 ... 나는 당신을 감사하기위한 루프 나를 위해 그것을 할하시기 바랍니다 :) 없이이 코드를 만들 수 있다면 은 BTWPython3.x 프라임 번호 while 루프가있는 목록

+0

이 링크 참조 : 삭제 https://stackoverflow.com/questions/34664067/python-while-loop-for-finding-prime-numbers – Sam

+0

를 '> = 2 상부 동안', 이는 불필요하다. '(2, 위 + 1) 범위 내에서 num : '이 일을하고 있습니다. – Alperen

+0

또한'if num == upper : break' 부분은 필요 없습니다. – Alperen

답변

0

는 편집 :

나는 내 이전 is_prime 기능은 문제가있다 생각한다. 이 방법은 신속하고

def is_prime(n): 
    """"pre-condition: n is a nonnegative integer 
    post-condition: return True if n is prime and False otherwise.""" 
    if n < 2: 
     return False; 
    if n % 2 == 0:    
     return n == 2 # return False 
    k = 3 
    while k*k <= n: 
     if n % k == 0: 
      return False 
     k += 2 
    return True 

이 기능을 사용한다) 잘 :(Source 작동합니다. 편집하기 전에

는 :

나는 here에서 is_prime 기능을 사용할 수 있습니다. 다른 방법을 사용할 수 있습니다.

, 나는 당신을 위해이 코드 제안 :

def is_prime(Number): 
    return 2 in [Number, 2**Number%Number] 

def prime(upper): 
    print([num for num in range(2, upper + 1) if is_prime(num)]) 

prime(7) 

출력 :

[2, 3, 5, 7] 

그러나 당신은 while 루프를 사용하여 주장하는 경우 수정할 수 있습니다 prime 함수 :

def prime(upper): 
    num = 2 
    while num <= upper: 
     if is_prime(num): 
      print(num, end = ",") 
     num += 1 

그러면 출력은

이됩니다.
2,3,5,7, 
+0

그 종류의 나를 도울 수 있지만이 코드의 목적은 무엇인지 질문 할 수 있습니까? ** [Number, 2 ** Number % Number] ** 2를 반환합니다. ** –

+0

이것은 인터넷에서 찾은 기능입니다. 나는 그 논리를 모른다. 대답에 제공된 링크에는 다른 기능이 있습니다. – Alperen

+0

링크를 찾을 수없는 경우 [여기] (https://stackoverflow.com/questions/15285534/isprime-function-for-python-language/32882220#32882220)를 클릭하십시오. 나는이 방법은 조금 문제가 있다고 생각한다. 링크에 좋지 않은 코멘트가있다. 짧기 때문에 그것을 선택했습니다. 또 다른'is_prime' 함수를 사용할 수 있습니다. – Alperen