Vous êtes sur la page 1sur 3

Nom 

:……………..…………..……. Prenom :………………………………poste :…..

TP2 :
Noter bien  :

Enregistrer votre travail périodiquement dans votre répertoire sous le nom tp2votre nom

Nombres de SMITH : Somme des chiffres égale à la somme des chiffres de ses facteurs
premiers.
Exemple :

sa décomposition en facteurs premier =


4 937 775
3 x 5 x 5 x 65 837

4+9+3+7+7+7+5 = 42 3+5+5+6+5+8+3+7 = 42

Somme chiffres de 202 sa décomposition en facteurs premier=


2 × 101,

2+0+2=4 2+1+0+1=4

Ecrire un code python qui permet d’afficher tous les nombres SMITH d’un vecteur t de n
entiers à 3 chiffres

Liste des nombres SMITH


4, 22, 27, 58, 85, 94, 121, 166, 202, 265, 274, 319, 346, 355, 378, 382, 391, 438, 454, 483, 517,
526, 535, 562, 576, 588, 627, 634, 636, 645, 648, 654, 663, 666, 690, 706, 728, 729…

Nom :……………..…………..……. Prenom :………………………………poste :…..
TP2 :
Noter bien  :

Enregistrer votre travail périodiquement dans votre répertoire sous le nom tp2votre nom

Nombres de SMITH : Somme des chiffres égale à la somme des chiffres de ses facteurs
premiers.
Exemple :

sa décomposition en facteurs premier =


4 937 775
3 x 5 x 5 x 65 837

4+9+3+7+7+7+5 = 42 3+5+5+6+5+8+3+7 = 42

Somme chiffres de 202 sa décomposition en facteurs premier=


2 × 101,

2+0+2=4 2+1+0+1=4

Il existe une infinité de nombres de Smith palindromes ; nombre SMITH qui peut nous donner le
même nombre en lisant ce nombre dans les deux sens

Par exemple des nombres de Smith palindromes : 22, 121, 202, 454, 535, 636, 666…

Ecrire un code python qui permet d’afficher tous les nombres SMITH palindromes d’un
vecteur t de n entiers à 3 chiffres

from numpy import*


def som_chiff(x) :
s=0
while x !=0 :
s=s+x%10
x=x//10
return s
def fact_premier (x) :
i=2
s=0
while x!=1 :
while x%i==0 :
s=s+som_chiff(i)
x=x//i
i=i+1
return s

n=int(input('n='))
t=array([int()]*n)
for i in range(n):
t[i]=int(input('t['+str(i)+']='))
while not(100<=t[i]<=999):
t[i]=int(input('t['+str(i)+']='))
for i in range(n):
if fact_premier (t[i])==som_chiff(t[i]):
print(t[i])
************************************************
from numpy import*
def som_chiff(x) :
s=0
while x !=0 :
s=s+x%10
x=x//10
return s
def fact_premier (x) :
i=2
s=0
while x!=1 :
while x%i==0 :
s=s+som_chiff(i)
x=x//i
i=i+1
return sdef palindrome(ch):
c=ch[::-1]
return ch==c
def nb_smith(x):
return fact_premier (x)==som_chiff(x)
n=int(input('n='))
t=array([int()]*n)
for i in range(n):
t[i]=int(input('t['+str(i)+']='))
while not(100<=t[i]<=999):
t[i]=int(input('t['+str(i)+']='))
for i in range(n):
if nb_smith(t[i]) and palindrome(str(t[i])):
print(t[i])

Vous aimerez peut-être aussi