Un nombre qui n'a que 2, 3 ou 5 comme facteurs premiers est appelé un nombre laid. Certains nombres laids incluent : 1, 2, 3, 4, 5, 6, 8, 10, 12, 15, etc.
Nous avons un nombre N, et la tâche est de trouver le Nième nombre laid dans la séquence de nombres laids.
pour exemple:
input -1:
N = 5
output:
5
explanation:
le 5ème nombre laid dans la séquence de nombres laids [1, 2, 3, 4, 5, 6, 8, 10, 12, 15] est 5.
Entrée-2 :
N = 7
Sortie :
8
Explication :
dans la séquence de nombres laide [1, 2, 3 , 4 , 5, 6, 8, 10, 12, 15], le septième nombre laid est 8.
Un moyen simple de résoudre ce problème est de vérifier si le nombre donné est divisible par 2, 3 ou 5 et de suivre la séquence jusqu'au nombre donné. Déterminez maintenant si le nombre satisfait aux conditions de tous les nombres laids et renvoyez ce nombre en sortie.
Démo
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.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!