1 / 4
Apr 2020

n=int(input('Podaj liczbe testow: '))

def sprawdzam(a):
dzielniki = []
for liczba in range(1,n+1):
if a==1 :
dzielniki.append(1)
break
if a % liczba == 0:
dzielniki.append(liczba)
if a<liczba+1:
break
if len(dzielniki) == 1 or len(dzielniki) > 2:
print(‘Nie’)
else:
print(‘Tak’)

sprawdzam(a)

  • created

    Apr '20
  • last reply

    Apr '20
  • 3

    replies

  • 722

    views

  • 3

    users

  • 1

    link

Rozumiem ze jezyk Pascal. Nie widać wcięć kodu co troszke utrudnia czytanie kodu.

dla n = 5
powiedzmy ze sprawdzam(4)
for liczba in range(1,6):
robisz fora ktory iteruje od 1 do 6 bez 6. Czyli 5 testów.
Tworzysz tablice dzielniki.
4%1 == 0 , # tablica = [1]
if a==1 :
dzielniki.append(1)
break
nastepuje break wychodzimy z fora .

teraz len(dzielniki) == 1 wiec print(‘Nie’) i koniec funkcji.

Podsumowujac:
Miało być 5 testów, wyszedł 1. Liczba 3 jest pierwsza, wyszlo ze nie

Polecam zrobic funkcje która sprawdza pierwszosc jednej liczby, a potem zrobic petle for w ktorej pytamy o liczbe do sprawdzenia i w niej wywolujemy funkcje sprawdzam(a).

Mi wygląda to jednak na język python @dchanys jako damdam wysyłał w tym jezyku rozwiazania.
W python wciecia pelnia role klamr wiec analiza bez wcięć może byc bez sensu. (podczas wklejania kodu trzeba korzystać z przycisku </>)
Nie widać w programie skąd pochodzi sie zmienna a.

Sedzie teksty inne niz spodziewane traktuje jako blad.
Wielkosc liter ma znaczenie(powinno byc TAK a nie Tak.
Uwagi @qumqum3 popieram. :grinning: