Hier hatten wir das Thema schon mal. Kannst dir ja mal meinen Code und den vom Ork dort anschauen. Dein Code ist wirklich etwas uneffizient. Wenn man testet, ob A durch B gerade teilbar ist und B² größer oder gleich A ist, dann ist A nicht gerade durch B teilbar. Hm, naja ist jetzt sicher etwas schwer zu verstehen. Ich poste mal meine Alternative zu deinem Programm hier ein:
Ist sogar etwas kürzer. Wenn du etwas daran nicht verstehst einfach nachfragen.