Skip to content

Commit 60a0068

Browse files
author
unknown
committed
first commit
0 parents  commit 60a0068

File tree

194 files changed

+9756
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

194 files changed

+9756
-0
lines changed

Convergent.py

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#!/usr/bin/env python
2+
import math
3+
4+
class Convergent(object) :
5+
def __init__(self, root, whole, add, div) :
6+
self.root, self.whole, self.add, self.div = root, whole, add, div
7+
self.int_root = int(math.sqrt(self.root))
8+
def reduce(self) :
9+
if self.whole == 0 :
10+
whole = self.int_root
11+
add = - whole
12+
div = 1
13+
else :
14+
div = self.root - self.whole ** 2
15+
neg_add = - self.add
16+
whole = (self.root + neg_add) / div
17+
add = neg_add - (div * whole)
18+
return Convergent(self.root, whole, add, div)
19+
def __str__(self) :
20+
if self.whole == 0 :
21+
return "sqrt(%d)" % self.root
22+
else :
23+
return "%d + 1/(sqrt(%d) + %d)/%d" % (self.whole, self.root, self.add, self.div)
24+
25+
c = Convergent(23, 0, 0, 1)
26+
print c
27+
28+
d = c.reduce()
29+
print d
30+
31+
e = d.reduce()
32+
print e
33+

a.py

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
2+
#def find_factor(n) :
3+
# for i in xrange(2, int(n**0.5 + 1)) :
4+
# if n % i == 0 :
5+
# return i
6+
# return n
7+
8+
#def find_factors(n) :
9+
# factors = []
10+
# while n != 1 :
11+
# fac = find_factor(n)
12+
# if fac not in factors :
13+
# factors.append(fac)
14+
# n /= fac
15+
# return factors
16+
17+
import psyco
18+
psyco.full()
19+
20+
import primes
21+
pt = primes.primeTable(1000*1000)
22+
23+
def find_factors(n) :
24+
factors = set()
25+
while pt[n] != 1 :
26+
factors.add(pt[n])
27+
n /= pt[n]
28+
factors.add(n)
29+
return factors
30+
31+
def totient(n) :
32+
num, denom = 1, 1
33+
for factor in find_factors(n) :
34+
num *= (factor - 1)
35+
denom *= factor
36+
return (n * num) / denom
37+
38+
import datetime
39+
s = datetime.datetime.utcnow()
40+
pt = primes.primeTable(1000*1000)
41+
e = datetime.datetime.utcnow()
42+
print e - s
43+
44+
s = datetime.datetime.utcnow()
45+
print sum((i-1 if pt[i] == 1 else totient(i)) for i in xrange(2, 1000001))
46+
e = datetime.datetime.utcnow()
47+
print e - s

0 commit comments

Comments
 (0)