commit b097c58a17bf20b71c570761ac4fbd0f8d0d0894 Author: other Date: Fri Nov 2 01:29:15 2018 -0500 added files diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..089f11e --- /dev/null +++ b/.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 + diff --git a/Factorize.py b/Factorize.py new file mode 100644 index 0000000..31ca082 --- /dev/null +++ b/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])) diff --git a/f.py b/f.py new file mode 100644 index 0000000..3e5867d --- /dev/null +++ b/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) +