Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
32
Task/Chowla-numbers/Python/chowla-numbers-1.py
Normal file
32
Task/Chowla-numbers/Python/chowla-numbers-1.py
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
# https://docs.sympy.org/latest/modules/ntheory.html#sympy.ntheory.factor_.divisors
|
||||
from sympy import divisors
|
||||
|
||||
def chowla(n):
|
||||
return 0 if n < 2 else sum(divisors(n, generator=True)) - 1 -n
|
||||
|
||||
def is_prime(n):
|
||||
return chowla(n) == 0
|
||||
|
||||
def primes_to(n):
|
||||
return sum(chowla(i) == 0 for i in range(2, n))
|
||||
|
||||
def perfect_between(n, m):
|
||||
c = 0
|
||||
print(f"\nPerfect numbers between [{n:_}, {m:_})")
|
||||
for i in range(n, m):
|
||||
if i > 1 and chowla(i) == i - 1:
|
||||
print(f" {i:_}")
|
||||
c += 1
|
||||
print(f"Found {c} Perfect numbers between [{n:_}, {m:_})")
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
for i in range(1, 38):
|
||||
print(f"chowla({i:2}) == {chowla(i)}")
|
||||
for i in range(2, 6):
|
||||
print(f"primes_to({10**i:_}) == {primes_to(10**i):_}")
|
||||
perfect_between(1, 1_000_000)
|
||||
print()
|
||||
for i in range(6, 8):
|
||||
print(f"primes_to({10**i:_}) == {primes_to(10**i):_}")
|
||||
perfect_between(1_000_000, 35_000_000)
|
||||
34
Task/Chowla-numbers/Python/chowla-numbers-2.py
Normal file
34
Task/Chowla-numbers/Python/chowla-numbers-2.py
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
from numba import jit
|
||||
|
||||
# https://docs.sympy.org/latest/modules/ntheory.html#sympy.ntheory.factor_.divisors
|
||||
from sympy import divisors
|
||||
|
||||
@jit
|
||||
def chowla(n):
|
||||
return 0 if n < 2 else sum(divisors(n, generator=True)) - 1 -n
|
||||
|
||||
@jit
|
||||
def is_prime(n):
|
||||
return chowla(n) == 0
|
||||
|
||||
@jit
|
||||
def primes_to(n):
|
||||
acc = 0
|
||||
for i in range(2, n):
|
||||
if chowla(i) == 0:
|
||||
acc += 1
|
||||
return acc
|
||||
|
||||
@jit
|
||||
def _perfect_between(n, m):
|
||||
for i in range(n, m):
|
||||
if i > 1 and chowla(i) == i - 1:
|
||||
yield i
|
||||
|
||||
def perfect_between(n, m):
|
||||
c = 0
|
||||
print(f"\nPerfect numbers between [{n:_}, {m:_})")
|
||||
for i in _perfect_between(n, m):
|
||||
print(f" {i:_}")
|
||||
c += 1
|
||||
print(f"Found {c} Perfect numbers between [{n:_}, {m:_})")
|
||||
Loading…
Add table
Add a link
Reference in a new issue