Program konsolowy, iterujący liczby

0

Siemka jestem początkującym programistą i przyszedłem tutaj z pytaniem czy ktoś pomógłby mi w napisaniu tego programu "Napisz program wyświetlający wszystkie liczby całkowite z przedziału od 50 do 100 podzielne przez dowolną liczbę, którą podaje użytkownik.
Następnie przekształć program tak, aby przedział liczb również podawał użytkownik."
Z góry dziękuje
Miłego wieczoru :)

1

Miłego wieczoru.
Co masz już napisane i z czym masz problem.

0

Aktualnie nie mam nic 😬i nie mam pojęcia jak do tego usiąść (zacząć)

2

Na początek powinno wystarczyć: https://ideone.com/
Wybierz z listy rozwijanej język Python 3
screenshot-20220606202404.png

  1. https://pynative.com/python-range-function/ - zacznij od przykładowego kodu.
  2. Przerób range tak, żeby obejmowało wszystkie liczby całkowite z przedziału od 50 do 100.
  3. Przed pętlą for pobierz od użytkownika liczbę (przez którą mają być podzielne liczby z przedziału). Użyj do tego input() - https://www.geeksforgeeks.org/how-to-take-integer-input-in-python/
  4. Żeby sprawdzić, czy liczba jest podzielna przez inną liczbę użyj modulo: if liczba1 % liczba2 == 0: #jesli liczba1 jest podzielna przez liczba2, to.... Musisz takiego if wykonywać w pętli. Jeśli warunek jest spełniony, to wypisujesz print(liczba1).
  5. W ideone możesz podać testowe wejście (stdin), wpisz tam jakiś przykładowy dzielnik, np. 5. Żeby input() w Twoim kodzie dostał liczbę, na podstawie której będzie się wykonywać algorytm.
2

Ściągnij Python'a z https://www.python.org/downloads/, odpal w terminalu python i zacznij siekać tutorial.

ten Figaro napisał(a):

Aktualnie nie mam nic 😬i nie mam pojęcia jak do tego usiąść (zacząć)

I już nazywasz się "początkującym programistą"? :D

39

Napisałbym Ci gotowca, ale zaraz @TomRiddle zacznie mnie szkalować :D hint: przyda Ci się modulo

1

Jeżeli potrzebujesz wszystkie liczby podzielne przez Div z zakresu od Start do Finish
To pierwsza liczba będzie s=(Start+Div-1)/Div*Div ostatnia f=Finish/Div*Div;
Więc zaczynasz od s lecisz do f s krokiem div.
Ewentualnie od s=(Start+Div-1)/Div do f=Finish/Div; ale wyświetlasz i*Div

1

wyświetlający wszystkie liczby

do wyświetlania masz funkcję print, przykład:

print(123)
a = 23
print(a)

całkowite z przedziału od 50 do 100

masz do tego funkcję range, a dokładniej range(50, 101), tylko musisz to później jakoś użyć, np. używając pętli for, w której przechodzisz przez każdą liczbę i coś z nią robisz

for i in range(50, 101):
   print(i)

podzielne przez dowolną liczbę

Musisz sprawdzić, czy reszta z dzielenia a przez b równa się zero. Czyli sprawdzasz za pomocą if warunek a % b == 0, gdzie a to pierwsza liczba, a b to ta druga liczba.

którą podaje użytkownik.

Możesz użyć funkcji input() do tego, żeby użytkownik mógł coś napisać np.

b = int(input('wpisz liczbe:'))

int() przekonwertuje na liczbę całkowitą (albo rzuci wyjątkiem, jeśli się nie da), bo samo input() zwróci stringa. Czyli jeśli użytkownik wpisze 23 to zostanie to zapisane w pamięci komputera jako dwuznakowy tekst ('23', czyli znak 2, a następnie znak 3), a nie jak prawdziwa liczba. Więc trzeba dopiero przekonwertować.

2

A mówili że python czytelny :D Nigdy wam już nie uwierzę :P

(lambda random, start, stop : list(map(print, filter(lambda num : (num % random) == 0, range(start, stop + 1)))))(int(input('Podaj dowolną liczbę: ')), int(input('Podaj min: ')), int(input('Podaj max: ')))

UPDATE tak się kończy czytanie SICP XD

3
KamilAdam napisał(a):

A mówili że python czytelny :D Nigdy wam już nie uwierzę :P

No

37
KamilAdam napisał(a):

A mówili że python czytelny :D Nigdy wam już nie uwierzę :P

(lambda random, start, stop : list(map(print, filter(lambda num : (num % random) == 0, range(start, stop + 1)))))(int(input('Podaj dowolną liczbę: ')), int(input('Podaj min: ')), int(input('Podaj max: ')))

UPDATE tak się kończy czytanie SICP XD

To filter jeszcze ktoś używa? :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1