-
Notifications
You must be signed in to change notification settings - Fork 0
/
ex55.py
63 lines (51 loc) · 1.1 KB
/
ex55.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# -*- coding: utf-8 -*-
"""
Created on Thu Oct 11 18:06:49 2018
@author: coriande
"""
##exercice 55
def pal(n):
##verifie si un nombre est un palindrone
n=str(n)
for i in range (len(n)//2):
if n[i]!=n[len(n)-1-i]:
return False
return True
assert pal(567765)==True
assert pal(56775)==False
def inverse(n):
n=str(n)
#nombre à inverser
n1=""
#nombre inversé
for i in range(len(n)):
n1=n1+n[len(n)-i-1]
n1=int(n1)
return n1
assert inverse(567)==765
def lychrel(n):
##cette fonciton regarde si un nombre n est un lychrel
a=0
s=n+inverse(n)
if not pal(s):
while a<=50:
s=s+inverse(s)
a+=1
if pal(s):
return False
return True
else :
return False
assert lychrel(196)==True
def nbre_lychrel(n):
#on va ici compter le nombre de lychrels inférieurs à n
a=0
#on vérifie si a est un lychrel
s=0
#compteur des lychrels
while a<=n:
if lychrel(a):
s+=1
a+=1
return s
##print(nbre_lychrel(10000))