0 Daumen
87 Aufrufe

ich habe ein Intervall a bis b gegeben und soll die kleinste Zahl in diesem Intervall finden, die durch eine Variable "c" teilbar ist. falls es keine solche Zahl gibt, soll die Variable auf "none" gesetzt werden(ohne Rest)

Programmierungssprache ist Python

ich habe da paar Ideen, ich weiß aber nicht, wie ich es als code schreiben kann

also, dass der Rest 0 ist, würde heißen, das die genannte Zahl % c=0 sein soll

ich denke, dass ich eine for Schleife brauche, um den Range durchzugehen

würde sowas wie for Zahl in range(a,b)  if Zahl%c=0 schreiben

ich weiß aber nicht wirklich wie

ich denke auch, dass man irgendwie mit boolean arbeiten muss, damit man dann sagen kann, if zahl%c=0 true dann (Zahl ausgeben eventuell?) und falls false dann auf "none" setzen

darüber hinaus weiß ich auch nicht, wie ich die kleinste solche Zahl finden kann...

kann mir jemand bitte helfen, das Problem zu lösen?

von

1 Antwort

0 Daumen
 
Beste Antwort

Hallo,

eine Schleife brauchst Du nicht, da man aus dem Rest bei der Division durch c die nächste durch c teilbare Zahl berechnen kann. Man muss nur noch prüfen, ob sie im Intervall liegt. Ich unterstelle, es handelt sich um ein geschlossenes Intervall, also a und b gehören noch dazu.

Ich kann kein Python, aber im Prinzip sollte die gesuchte Funktion so aussehen:

def funk1(a,b,c):          # liefert im Intervall [a,b] die kleinste Zahl ac mit c|ac
  ra = a % c # ra ist der Rest nach Division durch c
  if ra == 0:
      return a # ist der Rest 0, dann sind wir fertig
  ac = a + c - ra # ac ist kleinste Zahl > a, die durch c teilbar ist
  if ac <= b: # nur noch prüfen, ob ac auch in [a,b] liegt
      return ac
  return none

(kann sein, dass die Syntax nicht ganz richtig ist)

Ach - und alle Zahlen müssen >0 sein. Das sollte man vielleicht noch checken.

von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community