2016-09-21 1 views
-6

Ich versuche, eine Funktion schreiben, zu schreiben, die true zurückgibt, wenn eine ganze Zahl Square-Free ist - das ist, was ich versucht habe:Es kann keine quadrat Algorithmus

def squarefree(n): 
    for i in range (2,n-1): 
     if n%(i**2)==0: 
      return False 
     else: 
      return True 

In der Mathematik, ein Quadrat- frei, oder quadratfrei, ist eine ganze Zahl, die durch kein anderes perfektes Quadrat als 1 teilbar ist. Zum Beispiel ist 10 quadratisch, 18 aber nicht, da 18 durch 9 = 32 teilbar ist. Das kleinste positive Quadrat-freie Zahlen sind

+0

Sooo, was ist die Frage? Und deine Formatierung ist ausgeschaltet. –

+0

Was ist deine Frage? – Harsha

+0

Was ist quadratisch frei? –

Antwort

0

Das Hauptproblem hier ist Ihr ret Sie müssen immer dann urnen, wenn Ihre if-Anweisung fehlschlägt. Verschieben Sie die Rückgabe aus der for-Schleife. Auch eine schnelle Zeit sparen Sie müssen nur bis zur 4. Wurzel von n gehen.

Sie könnten wahrscheinlich mehr optimieren, indem Sie nur Primzahlen bis zur 4. Wurzel von n überprüfen.