-
Notifications
You must be signed in to change notification settings - Fork 0
/
td1 info.py
87 lines (61 loc) · 1.86 KB
/
td1 info.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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# -*- coding: utf-8 -*-
"""
Éditeur de Spyder
Ceci est un script temporaire.
"""
"""projet euler 16"""
def solve(x):
somme = 0
chaine = str(x)
for i in chaine:
somme += int(i)
return somme
assert solve(2**15)== 26
print(solve(2**1000))
"""projet euler 22"""
def solve():
fichier=open("listenoms.txt","r")
for ligne in fichier:
texte = ligne
fichier.close() ##création chaîne de caractère correspondant au contenu du fichier
listenoms=texte.split(",") ##création liste des noms
listenoms2=sorted(listenoms)
alphabet='"ABCDEFGHIJKLMNOPQRSTUVWXYZ' ##les guillemets " prendront la valeur 0
somme = 0
for i in range(len(listenoms2)):
sum =0 ##name score de chaque nom
for j in listenoms2[i]:
sum+=alphabet.find(j)
somme += sum*(i+1) ##on somme les namescore multiplié par la position du nom dans la liste
return somme
print(solve())
"""Projet euler 5"""
def solve():
nb=0 ##nb est le nombre de Lychrel numbers
for i in range(1,10001):
k=i
l=0
k=k+reverse(k)
while palindrome(k)==False and l<50:
k=k+reverse(k)
l+=1
if palindrome(k): ##on vérifie que la boucle s'est arrêté car on est tombé sur un palindrome et pas parce qu'on a atteint les 50 itérations
nb+=1
return 10000-nb
def reverse(x):
texte = str(x)
rev=''
n=len(texte)
for i in range(0,n):
rev = rev+texte[n-i-1]
inverse=int(rev)
return inverse
def palindrome(x):
nombre=str(x)
n=len(nombre)
for i in range (0,n):
if nombre[i]!=nombre[n-i-1]:
return False
else:
return True
print(solve())