Académique Documents
Professionnel Documents
Culture Documents
:……………..…………..……. 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 :
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
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 :
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
Ecrire un code python qui permet d’afficher tous les nombres SMITH palindromes d’un
vecteur t de n entiers à 3 chiffres
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])