Inscription / Connexion Nouveau Sujet
Niveau énigmes
Partager :

Somme egale nombre de diviseurs

Posté par
jarod128
29-12-21 à 00:09

Bonjour,
certaines énigmes mon données l'idée de celle-ci:
J'appelle diviseurs d'un entier n l'ensemble de ses diviseurs (sans tenir compte de leur ordre de multiplicité)
Par exemple 99 donne 1,3,9,11,33,99
On cherche un entier n dont la somme de ses chiffres est égale au nombre de ses diviseurs.
n=99 ne convient donc pas car 9+9=18 différent de 6 cardinal de ses diviseurs.
1 , 2 , 11 , 22, 36, 84 conviennent.
Ma question: Quel est le plus grand entier n vérifiant que sa somme des chiffres est égale au nombre de ses diviseurs et ayant tous ses chiffres différents?

Posté par
dpi
re : Somme egale nombre de diviseurs 29-12-21 à 10:21

Bonjour,
Et merci pour cette recherche:
Pour voir si j'ai bien compris.....

 Cliquez pour afficher

Posté par
carpediem
re : Somme egale nombre de diviseurs 29-12-21 à 12:27

salut

vu qu'il n'y a aucun lien à priori entre la somme des chiffres d'un nombre et le nombre de ses diviseurs je ...

 Cliquez pour afficher

Posté par
jarod128
re : Somme egale nombre de diviseurs 29-12-21 à 12:42

dpi oui tu as compris. Reste à trouver le plus grand ayant ses chiffres tous distincts.
carpediem oui encore faut il que l'algo le fasse en temps "humain" 🤣

Posté par
carpediem
re : Somme egale nombre de diviseurs 29-12-21 à 13:51

en python je suis persuadé que cela se fait en ... moins de temps que pas beaucoup !!!

Posté par
dpi
re : Somme egale nombre de diviseurs 29-12-21 à 14:06

En attendant...
A la main.

 Cliquez pour afficher

Posté par
dpi
re : Somme egale nombre de diviseurs 29-12-21 à 14:30

Je tente le record:

 Cliquez pour afficher

Posté par
dpi
re : Somme egale nombre de diviseurs 29-12-21 à 15:14

J'ai faux car le nombre de diviseurs doit être pair (hors carré)

Posté par
jarod128
re : Somme egale nombre de diviseurs 29-12-21 à 15:52

dpi @ 29-12-2021 à 15:14

J'ai faux car le nombre de diviseurs doit être pair (hors carré)

Tu en déduis quoi?

Posté par
dpi
re : Somme egale nombre de diviseurs 29-12-21 à 16:01

Et bien

 Cliquez pour afficher

Posté par
jarod128
re : Somme egale nombre de diviseurs 29-12-21 à 16:11

dpi mauvaise piste.

Posté par
Ulmiere
re : Somme egale nombre de diviseurs 29-12-21 à 19:44

carpediem @ 29-12-2021 à 13:51

en python je suis persuadé que cela se fait en ... moins de temps que pas beaucoup !!!


Etape 1 : crible d'Eratosthene jusqu'à 10**9 (10 chiffres), modifié pour obtenir la factorisation en puissances de premiers de chaque entier
Etape 2 : parcourir les permutations de "0123456789" en ordre décroissant grâce à itertools
Etape 3 : return dès que sigma(p) = somme des chiffres. Pour calculer sigma, c'est simplement le produit des (a(i)+1) où a(i) est la puissance sur le ième premier dans la décoposition de p


On peut raffiner les candidats en s'intéressant par exemple au reste modulo 3 de nos nombres, qui est congru à la somme des chiffres

Posté par
Ulmiere
re : Somme egale nombre de diviseurs 29-12-21 à 19:55

(Ca c'est pour les nombres ayant exactement 10 chiffres. Il suffit d'adapter le recours à itertools.permutation)

Posté par
jarod128
re : Somme egale nombre de diviseurs 30-12-21 à 00:52

Ulmiere Attention à ton étape 1, il ne s'agit pas de la décomposition en facteur premier mais de l'ensemble des diviseurs.

Posté par
jarod128
re : Somme egale nombre de diviseurs 30-12-21 à 00:54

Je mets en bonus: une fois déterminée le nombre cherché, donnez la liste de tous les nombres ayant autant de chiffres distincts que celui trouvé.

Posté par
dpi
re : Somme egale nombre de diviseurs 30-12-21 à 08:11

Bonjour,

Je pense que cette fois j'ai bon

 Cliquez pour afficher
nécessaire )

Posté par
dpi
re : Somme egale nombre de diviseurs 30-12-21 à 08:18

Pour le bonus..

 Cliquez pour afficher

Posté par
jarod128
re : Somme egale nombre de diviseurs 30-12-21 à 09:56

dpi non on peut faire mieux.
Pour le bonus, toutes les permutations d'un nombre correct ne fournit pas des solutions au problème.
Une indication pour dpi:

 Cliquez pour afficher

Posté par
dpi
re : Somme egale nombre de diviseurs 30-12-21 à 11:47

Oui ,j'avais d'ailleurs fait la remarque hier à 15h52 ,mais je ne croyais
pas à ce cas de figure et pourtant......

 Cliquez pour afficher

Posté par
jarod128
re : Somme egale nombre de diviseurs 30-12-21 à 11:56

dpi

Posté par
dpi
re : Somme egale nombre de diviseurs 30-12-21 à 14:53

Merci
Les autres 10 chiffres qui comportent cette égalité

 Cliquez pour afficher

Posté par
jarod128
re : Somme egale nombre de diviseurs 30-12-21 à 15:52

dpi Il en manque 2.

Posté par
Ulmiere
re : Somme egale nombre de diviseurs 30-12-21 à 16:19

Puisque dpi a donné un candidat a 10 chiffres, on sait désormais que le nombre de chiffres attendu est 10. La somme de tous les chiffres est 45, impaire.

 Cliquez pour afficher

Posté par
Ulmiere
re : Somme egale nombre de diviseurs 30-12-21 à 16:22

J'ai oublié de donner le résultat, c'est ballot

 Cliquez pour afficher


S'il y a encore des sadiques ou des masochistes qui lisent, on peut paralléliser les trois recherches, diminuer la limite supérieure pour le crible d'eratosthene, et ne pas faire de calcul inutile dans distinct_digits si le nombre n'est pas congru à 45 (et donc à 0) modulo 3,5,9

Posté par
jarod128
re : Somme egale nombre de diviseurs 30-12-21 à 16:42

Bravo Ulmiere. En supposant qu'il y avait des réponses à 10 chiffres, on pouvait drastiquement diminuer le nombre de valeurs à traîter.

Posté par
carpediem
re : Somme egale nombre de diviseurs 30-12-21 à 16:57

Ulmiere : le go j'y jouais quand j'étais plus jeune ... mais je ne connaissais pas ce langage !!

quelle particularité/intérêt a-t-il ?

dommage que ce ne soit pas en python ... car j'aurai pu te le pomper !!

et merci par avance !!!

Posté par
dpi
re : Somme egale nombre de diviseurs 30-12-21 à 17:37

Pour le plaisir
Je rajoute mes deux oublis.

 Cliquez pour afficher

Posté par
Ulmiere
re : Somme egale nombre de diviseurs 30-12-21 à 18:13

carpediem @ 30-12-2021 à 16:57

Ulmiere : le go j'y jouais quand j'étais plus jeune ... mais je ne connaissais pas ce langage !!

quelle particularité/intérêt a-t-il ?

dommage que ce ne soit pas en python ... car j'aurai pu te le pomper !!

et merci par avance !!!



Un langage statiquement typé, avec une syntaxe simple proche de Python, mais compilé pour être presque aussi rapide que le C.
Une bibliothèque standard, certes moins énorme que celle de Python, mais quand même importante (de quoi faire la plupart des choses (bigint, chaînes de caractères, tris, requêtes http, parsage, etc).
Green threads inclus de base dans le langage. C'était le cas aussi pour Rust, avant qu'ils le retirent.
Les fonctions génériques (templates) arrivent dans la prochaine version du langage.

Le côté négatif, c'est qu'il manque quelques fonctions qui peuvent être importantes dans certaines situations. Il n'y a pas d'objet set comme en Python sans devoir importer de package. A la place, on a des map (dict pour Python), et le set peut être remplacé par un map[T]bool ou map[T]struct{}.

Il n'y a aussi pas d'héritage/classes (du moins pas au sens conventionnel, mais pour les interfaces) et pas d'énumérations anonymes comme celles de Rust ou du C et C++.

Posté par
dpi
re : Somme egale nombre de diviseurs 30-12-21 à 18:55

Bonsoir Ulmiere
J'ai donc fait du go sans le savoir



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !