• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

SPOJ - Liczby Pierwsze w Python

Mały hosting, OGROMNE możliwości
+1 głos
1,028 wizyt
pytanie zadane 27 października 2019 w Python przez Krystian_nn Nowicjusz (150 p.)

Witam, dopiero zaczynam w Python dlatego też kod jest taki a nie inny :). Myślę że kod działa dobrze, ale pewnie jest gdzieś błąd którego nie widzę... ktoś ma jakieś wskazówki ? 

lt=input('Podaj liczbe testow: ')
lt=int(lt)
num=[]
if lt > 100000 or lt < 0:
    bad1=1
    while bad1==1:
        lt=input('Niepoprawna liczba testow podaj inna: ')
        lt = int(lt)
        if lt < 100000 and lt >= 0:
            bad1=0

            for i in range(0,lt):
                x = input('Podaj liczbe: ')
                x = int(x)
                if x >= 1 and x <= 10000:
                    num.append(x)

                else:
                    bad=1
                    while bad==1:
                        x = input('Podales zla liczbe podaj inna: ')
                        x = int(x)
                        if x >= 1 and x <= 10000:
                            num.append(x)
                            bad=0

            for b in range(0,lt):
                if num[b] <= 1:
                    print('NIE')
                else:
                    for i in range(2, x):
                        if num[b] % i == 0:
                            print('NIE')
                            break
                        else:
                            print('TAK')
                            break

komentarz 27 października 2019 przez adrian17 Mentor (354,880 p.)
Um, te wcięcia zupełnie nie mają sensu. Na pewno dokładnie tak samo masz w kodzie?

2 odpowiedzi

+1 głos
odpowiedź 27 października 2019 przez adrian17 Mentor (354,880 p.)

Zakładając że błędne wcięcia to błąd przy kopiowaniu a nie w oryginalnym kodzie, to:

for i in range(2, x):

tutaj raczej nie chcesz x'a.

0 głosów
odpowiedź 21 kwietnia 2020 przez allegromasi Nowicjusz (180 p.)

Również dopiero się uczę. Bazując na powyższym kodzie coś takiego działającego uzyskałam.

 

lt = None
lt_1 = None
x = None

lt=input('Podaj liczbe testow: ')
lt_1=int(lt)+1
num=[]

if lt_1 > 0 and lt_1 < 100000:
	num.append(0) # bo latwiej pozniej pracuje sie na tabeli
	#zaladunek tabeli
	for i in range(1,lt_1):
		x = input('')
		x = int(x)
		num.append(x)
	
	#weryfikacja czy liczba pierwsza
	for b in range(1,lt_1):
		czy_tak = 0
		czy_nie = 0
		
		if num[b] < 2:
			print('Nie')
		else:
			for j in range(2, num[b]):
				if num[b] % j == 0:
					czy_tak += 1
				else:
					czy_nie += 1
					
		# zliczenie podzielnikow, ustawienie wyniku
		if czy_tak > 0:
			print("Nie")
		else:
			print("Tak")
else:
	print("Poza zakresem")

 

Podobne pytania

0 głosów
0 odpowiedzi 537 wizyt
pytanie zadane 23 października 2019 w Python przez Krystian_nn Nowicjusz (150 p.)
0 głosów
2 odpowiedzi 1,070 wizyt
pytanie zadane 20 października 2018 w Python przez lancernik Nowicjusz (150 p.)
+1 głos
2 odpowiedzi 2,550 wizyt
pytanie zadane 6 października 2021 w Python przez Andrzej Hnatiuk Początkujący (350 p.)

93,715 zapytań

142,629 odpowiedzi

323,261 komentarzy

63,258 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...