Eine Zahl, die nur 2, 3 oder 5 als Primfaktoren hat, wird als hässliche Zahl bezeichnet. Einige hässliche Zahlen sind: 1, 2, 3, 4, 5, 6, 8, 10, 12, 15 usw.
Wir haben eine Zahl N und die Aufgabe besteht darin, die N-te hässliche Zahl in der Folge der hässlichen Zahlen zu finden.
Zum Beispiel:
Eingabe -1:
N = 5
Ausgabe:
5
Erklärung:
Die 5. hässliche Zahl in der Folge der hässlichen Zahlen [1, 2, 3, 4, 5 , 6, 8, 10, 12, 15] ist 5.
Eingabe-2:
N = 7
Ausgabe:
8
Erklärung:
in der hässlichen Zahlenfolge [1, 2, 3 , 4 , 5, 6, 8, 10, 12, 15], die siebte hässliche Zahl ist 8.
Eine einfache Möglichkeit, dieses Problem zu lösen, besteht darin, zu prüfen, ob die gegebene Zahl durch 2, 3 oder 5 teilbar ist, und die Folge bis zur gegebenen Zahl zu verfolgen. Finden Sie nun heraus, ob die Zahl die Bedingungen für alle hässlichen Zahlen erfüllt, und geben Sie diese Zahl als Ausgabe zurück.
Demo
public class UglyN { public static boolean isUglyNumber(int num) { boolean x = true; while (num != 1) { if (num % 5 == 0) { num /= 5; } else if (num % 3 == 0) { num /= 3; } // To check if number is divisible by 2 or not else if (num % 2 == 0) { num /= 2; } else { x = false; break; } } return x; } public static int nthUglyNumber(int n) { int i = 1; int count = 1; while (n > count) { i++; if (isUglyNumber(i)) { count++; } } return i; } public static void main(String[] args) { int number = 100; int no = nthUglyNumber(number); System.out.println("The Ugly no. at position " + number + " is " + no); } }
The Ugly no. at position 100 is 1536.
Das obige ist der detaillierte Inhalt vonFinden Sie die N-te hässliche Zahl in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!