]> git.leopard-lacewing.eu Git - prjeul.git/commitdiff
12
authortreecity <schaeferpm@gmail.com>
Sat, 7 Apr 2012 15:15:37 +0000 (17:15 +0200)
committertreecity <schaeferpm@gmail.com>
Sat, 7 Apr 2012 15:15:37 +0000 (17:15 +0200)
12.py [new file with mode: 0644]
func.py

diff --git a/12.py b/12.py
new file mode 100644 (file)
index 0000000..30afe2e
--- /dev/null
+++ b/12.py
@@ -0,0 +1,40 @@
+import func
+import math
+
+def factor2(n):
+    if n<4:
+        return []
+    p = func.primes(int(n**.5+1))
+    f = {}
+    while n>1:
+        p = filter(lambda x:n%x==0,p)
+        if(p==[]):
+            f[n] = 1
+            break
+        for i in range(len(p)):
+            if(p[i] in f):
+                f[p[i]]=f[p[i]]+1
+            else:
+                f[p[i]]=1
+        n = n/func.prod(p)
+#    f.sort()
+    return f 
+
+def catult(seq):
+    vek = [1, 0]
+    for i in seq:
+        for j in range(len(vek)-1,0,-1):
+            vek[j] = vek[j]+vek[j-1]*i
+        vek[len(vek):]=[0]
+        
+    return vek[:len(vek)-1]
+
+def possi(test):
+    return sum(catult(map(lambda x:test[x],test.keys()))[1:])+1
+
+for i in range(3,15000):
+    if(possi(factor2(func.summandielle(i)))>500):
+        print [possi(factor2(func.summandielle(i))), i, func.summandielle(i)],
+
+    
+    
diff --git a/func.py b/func.py
index 86edcdccb459ef277caeb378f9e725b78d054eb8..d943894f70451d31b533a9c8e82149438b00ee08 100644 (file)
--- a/func.py
+++ b/func.py
@@ -1,3 +1,5 @@
+import math
+
 # Berechnet die Summe aller vielfachen von base bis max
 def summandielle(max,base=1):
     max = int(max/base)*base
@@ -57,6 +59,25 @@ def factor(n):
         n = n/prod(p)
     f.sort()
     return f
+
+def factor2(n):
+    if n<4:
+        return []
+    p = primes(int(n**.5+1))
+    f = {}
+    while n>1:
+        p = filter(lambda x:n%x==0,p)
+        if(p==[]):
+            f[n] = 1
+            break
+        for i in range(len(p)):
+            if(p[i] in f):
+                f[p[i]]=f[p[i]]+1
+            else:
+                f[p[i]]=1
+        n = n/prod(p)
+#    f.sort()
+    return f 
     
 # Multipliziert alle Werte aus liste seq auf
 def prod(seq):
@@ -64,4 +85,17 @@ def prod(seq):
 
 # generiert Pyth tripel
 def pythtrip(u,v):
-    return [u*u-v*v, 2*u*v, u*u+v*v]
\ No newline at end of file
+    return [u*u-v*v, 2*u*v, u*u+v*v]
+
+#Binomial Koeffizient
+def binomial(n,k):
+    return math.factorial(n)/(math.factorial(k)*math.factorial(n-k))
+
+def ebinomial(seq):
+    vek = [1, 0]
+    for i in seq:
+        for j in range(len(vek)-1,0,-1):
+            vek[j] = vek[j]+vek[j-1]*i
+        vek[len(vek):]=[0]
+        
+    return vek[:len(vek)-1]
\ No newline at end of file