def
dividi(num,base):
if num/base ==0:
print num % base,
else:
dividi(num/base,base)
print num % base,
num=4100
base=9
print num,' in base ',base,':'
dividi(num,base)
print
"""gioco di
Collatz Alice 2003 n
12 pag 556
partendo da qualunque numero si arriva sempre a 8 4 2 1 """
def serie(n):
if n>1:
if n % 2 == 0:
n=n/2
print n,
else:
n=3*n+1
print n,
serie(n)
for i in range(2,50):
print i
serie(i)
print
print
serie(14123) def primo(k):
a=3
x=True
while a*a<=k:
if (k % a) == 0:
x=False
print 'divisore',a
print 'secondo divisore',k/a
a=k
a=a+2
return x
#divisori di 5040
e 7560
def divisori(k):
L=[1]
radice=math.sqrt(k)
#print radice
a=2
while a<=radice:
if k % a==0:
L.append(a)
if
a<>k/a:
L.append(k/a)
a=a+1
#print a
return L
def somma_elementi(L):
somma=0
for k in L:
somma=somma+k
return somma
def perfetto(k):
D=divisori(k)
print 'divisori di',k,':'
print D
if somma_elementi(D)==k:
return True
else:
return False def media(Lista):
""" media, varianza dei valori in Lista
"""
somma = 0
n = len(Lista)
for k in Lista:
somma = somma+k
m = float(somma)/n
Trasformare un numero dalla base 10 alla base 16
(invece di 10 si
scrive A, invece di 11 B e così via fino a 15 F)
numeri di Marsenne 2^n-1 con n primo
fino a n=31 verifica che e' primo
fino a n=59 verifica che non e' primo
anche con n=61 in circa 1,5 h 2305843009213693951 e'
primo e
quindi
2658455991569831744654692615953842176
e' perfetto
Se n è primo ed anche 2^n-1 e' primo allora
2^(n-1)*(2^n-1) e' perfetto (la somma dei divisori di n escluso n,
coincide con n)