2017-04-20 4 views
0

위치 번호가 소수가 아니지만 첫 번째 위치를 만드는 방법을 알아낼 수 없다면 문자열을 변경하는 프로그램을 작성해야합니다 (예 : 위치 2). , 소수, 2로 나눌 수있는 나머지 위치를 N으로 바꿉니다. 아래는 현재 갖고있는 것이며 int 오류입니다. 누구든지 나를 도울 수 있다면, 나는 정말로 감사 할 것입니다. 당신이 범위의 정수가 아닌 발전기를 필요하기 때문에 아마 오류가 대신 for i in n_list 또는 for i in range(len(n_list))을 시도범위 내의 소수 검색하기

while True: 
    number = int(input("Enter a number greater than 10: ")) 
    if number < 10: 
     print("Invalid input. Try again") 
    else: 
     break 

n_list = ["P"] * (number + 1) 
n_list[0] = "N" 
n_list[1] = "N" 

for i in range(n_list): 
    if int(n_list[i]) % 2 == 0: 
     n_list[i] = "N" 

print(n_list) 
+0

나는 숙제를 그대로 붙여 넣지 않으면 더 적은 downvotes를 잡을 것이라고 생각합니다. 그 후, OP는 실제로 자신의 코드와 그것의 붙어있는 부분에 대한 설명을 제공합니다. – timgeb

+0

(그러나 "오류가 발생했습니다"는 허용되는 오류 설명이 아닙니다) – timgeb

답변

1

첫째 주셔서 감사합니다. 문제의 접근법에 관해서는, 2에서 n으로 반복 할 필요가 없습니다. 더 똑똑한 방법이 있습니다. 그러나 우리는 당신을 위해 그 문제를 해결하기 위해 여기에있는 것이 아니라, 당신이 우리에게 줄 수있는 최종적인 오류를 발견하도록 안내합니다. 그렇게 말하면, 행운을 빕니다!

PS : 조금 더 지침 Sieve of Eratosthenes

편집 : 내가 말하는 겁니다 오류가

TypeError: 'list' object cannot be interpreted as an integer 
0

내가 당신에게 당신의 숙제에 대한 답을주고 싶지 않지만 나는 너를 조금 인도 해줄 수 있도록 도와주고 싶다.

제공하신 것에 2 가지 문제점이 있습니다. 첫째, 범위에 잘못된 변수를 사용하고 있습니다. 번호가 아니라 목록이 필요합니다.

둘째, "P"가 균등하게 나눌 수 있는지 비교할 수 없습니다. 2. 수만 있는지 확인할 수 있습니다.

희망이 도움과 행운을 빕니다.

편집 : 더 많은 문제가 있지만이 두 가지는 오류를 발생시킵니다.