Python potrzebuje szybkiej pomocy nie mam totalnie pojecia jak to zrobic

0

Napisz program sprawdzający, czy wpisana z klawiatury liczba naturalna jest podzielna
przez 3. Wykonaj to zadanie bez wykorzystania operatora reszty z dzielenia. Zauważ, że
gdy zsumujesz cyfry wczytanej liczby, potem cyfry powstałej sumy i będziesz powtarzać
to sumowanie, aż uzyskasz jedną cyfrę, otrzymasz odpowiedź. Jeśli cyfrą, którą uzyskasz,
będzie 3, 6 lub 9, to wczytana liczba jest podzielna przez 3.
Na przykład dla liczby 32 415 należy obliczyć sumę 3 + 2 + 4 + 1 + 5 = 15, a następnie
1 + 5 = 6. Wynikiem jest cyfra 6, więc liczba 32 415 jest podzielna przez 3 potrebuje najlepiej gotowca

1

@timorh: Najpierw pokaż co sam zdążyłeś napisać.

1
>>> n = 32415
>>> sum(map(int, str(n)))
15

Powtarzaj sobie w pętli aż n < 10.

3

Dlaczego nas tak bardzo nie szanujesz, że zakładasz konto tylko po to, żeby ktoś wkleił Ci gotowe rozwiązanie? Co my Ci zrobiliśmy, że nas tak nienawidzisz?

3

Jest to zadanie dla mojego dziecka które jest aktualnie chore i staram sie mu w tym pomóc a ja sam dużo nie wiem bo ja nie miałem inforamtyki w szkole. Normalnie rodem jak z jakiegoś olx :P

0

Co w przypadku gdy nauczyciel poprosi twoje dziecko o omówienie działania tego kodu?
poza tym jeśli dziecko jest chore i nie jest w stanie napisać tego programu to też raczej nie powinno uczestniczyć w e-lekcjach. Jak napisal @UglyMan, zrobi jak wyzdrowieje.

A jeśli chcesz mu pomóc w zrozumieniu to dowiedz się jak działaj w Pythonie zmienne, operatory, pętle oraz zamienianie napisu w liczbę.

1

Myślę, że jako rodzic, z chęcią przeniósłbyś ten temat do działu ogłoszenia drobne, gdzie ktoś za być może niecałą stówkę chętnie je rozwiąże.

0
input_from_user:int = int(input("Podaj liczbę: "))

while(len(str(input_from_user)) != 1):
	input_from_user:int = sum(int(x) for x in str(input_from_user))

if(int(input_from_user) in [3, 6, 9]):
	print("Podana liczba jest podzielna przez 3.")
else:
	print("Podana liczba nie jest podzielna przez 3.")
1
(lambda n: print(["nie", ""][not (n/3 - n//3)]+"podzielna"))(int(input()))
1
enedil napisał(a):
n = int(input())
n -= n // 3
print(["", "nie"][n == 0], "podzielna", sep="")

Matko boska! Co to za maszkara? :|

@Suchy702 Zrób tak:

n = int(input())
print("podzielna" if n % 3 == 0 else 'niepodzielna')
1

@TomRiddle

Nie wiem co za procenty używasz ale mam coś takiego i działa!

n = input()
while len(str(n)) > 1:
    n = sum([int(i) for i in n])
print(["nie", ""][n in [3, 6, 9]], "podzielna", sep="")

Ale postaram się jeszcze skrócić

0
Suchy702 napisał(a):

@TomRiddle
Nie wiem co za procenty używasz ale mam coś takiego i działa!

n = input()
while len(str(n)) > 1:
    n = sum([int(i) for i in n])
print(["nie ", ""][n in [3, 6, 9]], "podzielna", sep="")

Ale postaram się jeszcze skrócić

No nie wiem, operowanie na liczbach jako stringach wydaje mi się turbo słabym pomysłem.

Jeśli nie możesz użyć % to może możesz użyć //? Czyli dzielenie bez reszty, i odjąć to od orginalnej liczby. To byłoby w sumie ten sam wynik co %.

n = int(input())
mod = n - (n // 3) * 3
print("podzielna" if mod == 0 else 'niepodzielna')

Ale moim zdaniem to zadanie jest turbo bezsensu. To prawda że można sprawdzić czy liczba jest podzielna, poprzez jej notację w dowolnej bazie (np bazie 10), i potem je dodać, i tak iteratywnie sprawdzić podzielność, ale jest to wysoce kosztowny i nieopisowy sposób.

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