J'ai trouvé des questions similaires mais c'est un peu plus compliqué.Factoriser de grands nombres en triplets
J'ai un grand nombre n (j'ai en fait plus, mais ce n'est pas grave maintenant), (> 40 chiffres), et je veux trouver un * b * c = n triplets. La factorisation première de n est faite. Il n'a pas de grands diviseurs principaux, mais beaucoup de petits diviseurs premiers. La somme de tous les diviseurs premiers (diviseurs multiples inclus) est supérieure à 50.
Je voudrais trouver un * b * c = n triplets, où < = b < = c. Je ne veux pas tous les triplés, parce qu'ils sont trop nombreux. Je cherche des spéciales.
Par exemple:
- le triplet (s) où CA est minime,
- le triplet (s) où c/a minimal,
- celui où a, b et c a la diviseur commun maximal,
- ces conditions combinées.
Ceci peut être un peu plus facile à résoudre si l'on sait que n = k! (Factoriel). La résolution pourrait conduire à une méthode générale. Le calcul de tous ces triplets avec force brute n'est pas une option en raison de la taille de n, j'ai donc besoin d'un bon algorithme ou d'outils spéciaux pour m'aider à implémenter une solution pour cela.
Désolé pour mon mauvais anglais,
Merci pour les réponses!
Les facteurs premiers 'a, b, c' sont-ils? Recevez-vous une liste de facteurs premiers en entrée? –
Merci pour les commentaires! Nous connaissons les premiers diviseurs. C'est pourquoi je préfère k! nombres à travailler: ces nombres sont très simples. Mais le nombre de tous les diviseurs distincts est trop élevé pour les vérifier avec des boucles. Pour 40 !, | D | ~ 10^8. N'oubliez pas, ce sont de gros chiffres, travailler avec eux prend beaucoup de temps. – gkovacs90
Donc 'a, b, c' ne sont que des facteurs, pas nécessairement premiers? –