Ich fürchte du wirst um deine While Schleife nicht drumherum kommen.
Das ganze läßt sich sicher realisieren durch eine Faktorzerlegung deiner Eingangsfrequenz und dann einer Annäherung.
Ich habe allerdings keine passende Mathfunktion dazu gefunden. Was ich gesehen habe ist eine ggT und eine kgV Funktion, mit denen man das sicher auch hinbiegen könnte.
Aber: Ich habe mir diese ggT Funktion angesehen und in der steckt auch eine While Schleife, wie du sie schon hast.
Ich glaube also, dass du um deine Schleife nicht herumkommst.