Ich wurde kürzlich in einem Interview gebeten, ein Programm zu schreiben, um zu überprüfen, ob eine Nummer in Form von A^B dargestellt werden kann. Ich konnte das Problem nicht lösen, da ich nicht einmal einen richtigen Ansatz hatte, um das Problem zu lösen.Wie überprüft man, ob eine Zahl in der Form A^B dargestellt werden kann?
Hier sind einige Beispiele
Input = 4
Output = true
Wie es als 2^2
Input = 536870912
Output = true
dargestellt werden kann, wie es als 2^29
Input = 1024000000
Output = true
Wie es dargestellt werden kann, kann als 2^16 * 5^6 = 32000^2
dargestellt werden 0Kann jemand bitte eine Lösung (vorzugsweise mit Java) für dieses Problem bereitstellen?
Hint - Primfaktoren. Jede ganzzahlige Zahl kann durch das Produkt ihrer Primfaktoren dargestellt werden. Die Berechnung der Primfaktoren einer Zahl wird als [Primäre Zerlegung] bezeichnet (http://revisionworld.com/gcse-revision/maths/number-and-algebra/number/numbers)/Primfaktor-Zerlegung). –
Sie können in der ersten die Quadratwurzel der Zahl machen, dann beginnen, die Zahl durch alle Primzahlen zu teilen, die unter der Quadratwurzel liegen, wenn Sie eine Zahl finden, die Sie stoppen, sonst fahren Sie fort, bis Sie 1. –
erreichen keine Beschränkung auf "B", dann sag einfach "wahr" für alles. 'A = A^1' für alle' A'. – user2478398