Skip to content

Instantly share code, notes, and snippets.

@thomasaarholt
Created September 27, 2017 13:32
Show Gist options
  • Save thomasaarholt/543b01b140f2d92c55007c2d8bd36362 to your computer and use it in GitHub Desktop.
Save thomasaarholt/543b01b140f2d92c55007c2d8bd36362 to your computer and use it in GitHub Desktop.
fftw prime determiner
def check_if_number_is_fftw_prime(numb):
import sympy
factors = sympy.ntheory.factorint(numb)
if len(factors) > 5:
return False
primes = factors.keys()
if max(primes) > 13:
return False
n11 = 0
n13 = 0
if 11 in primes:
n11 = factors[11]
if 13 in primes:
n13 = factors[13]
if n11 + n13 > 1:
return False
print(factors)
return True
def find_closest_fftw_number(numb):
is_prime = check_if_number_is_fftw_prime(numb)
if is_prime:
return numb
for i in range(1,200):
direction = -1
new_number = numb + direction * i
if check_if_number_is_fftw_prime(new_number):
return new_number
direction = 1
new_number = numb + direction * i
if check_if_number_is_fftw_prime(new_number):
return new_number
raise ValueError("Looped through 200. Raise ceiling or check code.")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment