def hasFactors( n, m ): ''' checks if it has m factors ''' for x in primeGen( n ): if not n % x: if not m: return False m -= 1 return not m
from utils import primeGen, digits from operator import add s = {} for prime in primeGen( start=1000, end=10000 ): d = tuple( sorted( digits( prime ) ) ) if d not in s: s[ d ] = () s[ d ] += ( prime, ) for d, ps in s.iteritems(): if len( ps ) >= 3: l = len( ps ) for i in xrange( l ): for j in xrange( i + 1, l ): for k in xrange( i + j, l ): p1, p2, p3 = ps[ i ], ps[ j ], ps[ k ] if p3 - p2 == p2 - p1 and p1 != 1487: print reduce( add, map( str, ( p1, p2, p3 ) ) )
def quadGen(): for b in primeGen( 1000 ): for a in xrange( 1000 ): yield primeLen( a, b ), a, b yield primeLen( -a, b ), -a, b
def Goldbach( c ): for p in primeGen( c ): if isEven( c - p ) and isSquare( ( c - p ) / 2 ): return True
decimals = [] # The value under the bar dividianList = [] dividianSet = set() dividian = 10 while dividian not in dividianSet: dividianList.append( dividian ) dividianSet.add( dividian ) dividee = dividian // divisor remainder = dividian % divisor decimals.append( dividee ) if not remainder: return 0 dividian = remainder * 10 i = -1 count = 1 while dividianList[ i ] != dividian: count += 1 i -= 1 return count print max( ( cycleLen( i ), i ) for i in primeGen( 1000 ) )[ 1 ] #RELOOK
from utils import primeGen for t in primeGen(): if t > 8: break d = t n = d * 3 // 7 while float(n + 1) / d < float(3) / 7: n += 1 print n, d
from utils import primeGen, product n, g = 1, primeGen() t = next( g ) while n * t < 10 ** 6: n *= t t = next( g ) print n
from utils import primeGen gen = primeGen() i, primeI = 1, next( gen ) while 2 * primeI * i < 10 ** 9: next( gen ) primeI = next( gen ) i += 2 print i # RELOOK