Pagini recente » Cod sursa (job #2044962) | Cod sursa (job #934159) | Cod sursa (job #703660) | Cod sursa (job #141463) | Cod sursa (job #2528471)
a=int(open('fractii.in','r').read())
t=a
import math
def get_phi(div,nr):
rez = nr
for d in div:
rez = rez * (1-1/d)
return nr-math.floor(rez)-1
dic = {1:set([1])}
i=2
while i<=a:
if i in dic:
i+=1
continue
dic[i] = set([i])
j = 2
while i*j <= a:
if i*j not in dic:
if j in dic:
dic[i*j] = dic[j].union(set([i]))
else:
dic[i*j] = set([i,j])
j+=1
i+=1
def gcd(a,b):
if b==0:
return a
return gcd(b,a%b)
#print(dic)
for i in range(2,a+1):
prod = 0
for d in dic[i]:
prod += a//d - i//d
#print(i, a - prod - get_phi(dic[i],i))
t += a - prod - get_phi(dic[i],i)-1
#print(t)
open('fractii.out','w').write("%d"%t)