Browse Source

added files

master
other 7 years ago
commit
b097c58a17
  1. 97
      .gitignore
  2. 31
      Factorize.py
  3. 45
      f.py

97
.gitignore

@ -0,0 +1,97 @@
# ---> Python
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
env/
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*,cover
.hypothesis/
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
target/
# Jupyter Notebook
.ipynb_checkpoints
# pyenv
.python-version
# celery beat schedule file
celerybeat-schedule
# SageMath parsed files
*.sage.py
# dotenv
.env
# virtualenv
.venv
venv/
ENV/
# Spyder project settings
.spyderproject
# Rope project settings
.ropeproject
desktop.ini

31
Factorize.py

@ -0,0 +1,31 @@
import saveto
from math import log
from math import factorial
primes = tuple(saveto.load('primes'))
print('Made tuple')
def factor(c):
output = {}
if c in primes:
output = {c:1}
else:
n = c
count_0 = 0
while n != 1:
while n%primes[count_0] != 0:
count_0 += 1
b = primes[count_0]
p = round(log(n,b))
while n%(b**p) != 0:
p -= 1
n /= b**p
count_0 += 1
if p > 0:
output[b] = int(p)
return output
##output = [{0:1},{1:1}]
##for i in range(2,30):
## output.append(factor(i))
## if i%1000 == 0:
## print(i)
##print(output)
##print('{:,}'.format(primes[-1]))

45
f.py

@ -0,0 +1,45 @@
from math import log
import sys
sys.path.insert(0,'X:\\Users\\Raphael\\Documents\\primes\\')
from prime_loader import get_prime
p_list = []
for i in range(10**3):
p_list += get_prime(i*10**6)
def factor(n,skip = False):
f = {}
if n in p_list and not skip:
f[n] = 1
return f
for p in p_list:
if n%p == 0:
max_p = int(log(n,p))
for i in range(max_p,-1,-1):
if n%(p**i) == 0:
f[p] = i
## print('{}**{}'.format(p,f[p]))
n //= p**i
break
if n == 1:
return f
def ff(n):
main = {}
for i in range(2,n+1):
l = factor(i)
for p in l.keys():
try:
main[p] += l[p]
except KeyError:
main[p] = l[p]
return main
def prod(val,func = lambda x:x):
v = 1
for i in val:
v *= func(i)
return v
def toitent(n):
f = factor(n)
c = n//prod(f.keys())
return c*prod(f.keys(),lambda x: x-1)
Loading…
Cancel
Save