-
nikitheve.
User deleted
CODICEdef Felice(num):
"""Ritorna True se num e' un numero felice"""
cifre = []
num2 = 0
for i in range(len(str(num))):
cifre.append(int(str(num)[i]))
if cifre == [4]:
return False
elif cifre == [1]:
return True
else:
for i in range(len(cifre)):
num2 += cifre[i]**2
if Felice(num2):
return True
else:
return False
def Felici(num):
"""Stampa la lista dei numeri felici compresi tra 0 e num (esclusi)"""
felici = []
for i in range(1, num):
if Felice(i):
felici.append(i)
print felici. -
(!_!).
User deleted
CODICEdef pinguinofelice(num):
num2=0
if num != 1:
for x in list(str(num)):
num2+=int(x)**2
try:
pinguinofelice(num2)
except RuntimeError:
print(" Tricheco ")
else:
print(" Pinguino "). -
massimop1973.
User deleted
rieccomi dopo tanto tempo, mando la mia soluzione al problema CODICEpublic static boolean isFelice(int num) {
// inserisco le singole cifre del numero
ArrayList<Integer> cifre = new ArrayList<Integer>();
// se nuovoNumero e' gia' contenuto qui, allora non è felice
ArrayList<Integer> tmp = new ArrayList<Integer>();
int nuovoNum = num;
while (nuovoNum != 1) {
tmp.add(nuovoNum);
cifre.clear();
// separo le cifre e le metto in un ArrayList cifre
while (nuovoNum != 0) {
cifre.add(nuovoNum % 10);
nuovoNum /= 10;
}
// accumulo in nuovoNum la somma dei quadrati delle singole cifre
for (Integer n : cifre) {
nuovoNum += n*n;
}
// verifico se nuovoNum è già contenuto in tmp, se si allora
// il numero non è felice
if (tmp.contains(nuovoNum)) {
return false;
}
}
return true;
}.