Il y a eu beaucoup de défis liés à la factorisation prime / prime récemment, donc j'ai pensé qu'il pourrait être intéressant d'aller dans l'autre sens.
Donné:
- un entier positif 
n, et - une liste non vide d'entiers positifs 
f 
écrire un programme complet ou une fonction pour trouver le plus petit entier itel que i >= net iest un produit de puissances entières non négatives d'éléments dans f.
Exemples:
Supposons
n = 11, f = [2, 3, 5].Les premiers produits sont:
1 = 2^0 * 3^0 * 5^0 2 = 2^1 * 3^0 * 5^0 3 = 2^0 * 3^1 * 5^0 5 = 2^0 * 3^0 * 5^1 4 = 2^2 * 3^0 * 5^0 6 = 2^1 * 3^1 * 5^0 10 = 2^1 * 3^0 * 5^1 9 = 2^0 * 3^2 * 5^0 15 = 2^0 * 3^1 * 5^1 25 = 2^0 * 3^0 * 5^2 8 = 2^3 * 3^0 * 5^0 12 = 2^2 * 3^1 * 5^0 => smallest greater than (or equal to) 11, so we output it. 20 = 2^2 * 3^0 * 5^1 18 = 2^1 * 3^2 * 5^0 30 = 2^1 * 3^1 * 5^1 50 = 2^1 * 3^0 * 5^2 27 = 2^0 * 3^3 * 5^0 45 = 2^0 * 3^2 * 5^1 75 = 2^0 * 3^1 * 5^2 125 = 2^0 * 3^0 * 5^3Supposons
n=14, f=[9, 10, 7].Encore une fois, les premiers produits:
1 = 7^0 * 9^0 * 10^0 7 = 7^1 * 9^0 * 10^0 9 = 7^0 * 9^1 * 10^0 10 = 7^0 * 9^0 * 10^1 49 = 7^2 * 9^0 * 10^0 => smallest greater than (or equal to) 14, so we output it. 63 = 7^1 * 9^1 * 10^0 70 = 7^1 * 9^0 * 10^1 81 = 7^0 * 9^2 * 10^0 90 = 7^0 * 9^1 * 10^1 100 = 7^0 * 9^0 * 10^2
Cas de test:
n, f -> output
10, [2, 3, 5]              -> 10
17, [3, 7]                 -> 21
61, [3,5,2,7]              -> 63
23, [2]                    -> 32
23, [3]                    -> 27
23, [2, 3]                 -> 24
31, [3]                    -> 81
93, [2,2,3]                -> 96
91, [2,4,6]                -> 96
1,  [2,3,5,7,11,13,17,19]  -> 1
151, [20,9,11]             -> 180
11616, [23,32]             -> 12167
11616, [23,32,2,3]         -> 11664 = 2^4 * 3^6
5050, [3,6,10,15,21,28,36,45,55,66,78,91,105,120,136,153,171,190,210] -> 5103 = 3^6 * 7
12532159, [57, 34, 12, 21] -> 14183424 = 12^5 * 57
Règles
- Vous pouvez supposer qu'il 
fcontiendra au moins un élément et que tous les éléments defseront supérieurs à 1. - Vous pouvez éventuellement supposer que 
fc'est trié par ordre décroissant / croissant si vous le souhaitez (mais veuillez préciser). - Vous pouvez éventuellement prendre le nombre d'éléments de 
fsi vous le souhaitez. - La sortie sous forme de chaîne est autorisée.
 - Il s'agit de code-golf , donc la réponse la plus courte en octets dans chaque langue gagne!
 - Les règles d'E / S par défaut s'appliquent et les failles standard sont interdites.
 - Des explications sont encouragées.
 
∞enregistre les3octets sur-Log@0 (doesn't work on TIO, but works fine on desktop Mathematica). Also,Tr [1 ^ {##}] `est un octet plus court queLength@{##}.