Folgenden Code habe ich bis jetzt (als Funktion, die dann in das "Hauptskript" importiert wird):
Code: Alles auswählen
#!/usr/bin/env python3
from math import *
def divisor(number):
result = 0
for div in range(2, number):
if number * 10.0 / div % 10 == 0:
result = result + div
for div in range(2, result):
if result % div == 0:
break
Code: Alles auswählen
#!/usr/bin/env python3
from math import *
from deflib import divisor
limes = int(input("Limes: "))
for i in range(limes+1):
divisor(i)
In der For-Schleife werden alle echten Teiler von 10 bestimmt, also 2 und 5, da 1 und 10 Trivialteiler von 10 sind, und die Teiler dann mit einander addiert, sodass die Variable result am Ende die Summer aller echten Teiler von 10 enthält. Somit ist result=7 (5+2, 10 und 1 werden ja ausgelassen)
In der zweiten For-Schleife soll dann überprüft werden, ob die Summe result Prim ist oder nicht. Dass lässt sich ja ganz einfach mit Modulo und einer Schleife errechnen. Die Überprüfung könnte man natürlich optimieren indem man die Schleife nur bis zur Wurzel der Summe result laufen lässt, oder überprüft, ob die Summe der echten Teiler 0 ist oder was auch immer. Hier gibt es ja viele verschiedene Verfahren und Tests.
Ist result nun prim, soll die Anfangsnummer 10 und die Echtteilersumme 7 irgendwie zusammen gespeichert werden, sodass beim Abrufen beide Werte angegeben werden. Für meine Zwecke ist denke ich ein Dictionary nicht ganz falsch, da ich ja dann 10 als Schlüssel und 7 als Wert speichern könnte.
Allerdings weiß ich nicht wie ich das hier realisieren soll.
Wenn result nicht prim ist, soll er einfach die Funktion beenden, und dann wird eben die nächste Zahl verarbeitet, da die Funktion divisor ja in einer Schleife aufgerufen wird.
Hoffe ihr könnt nachvollziehen wo mein Problem liegt
LG
TimeMen