Пример #1
0
def largePrimediv(num):
    print num
    primes=[(i) for i in primes_upto(10000) if i is not 0]
    largest=1
    
    for i in primes:
        if i> num:
            break;
        if num%i is 0:
            num=num/i
            largest=i

    return largest
Пример #2
0
#We shall say that an n-digit number is pandigital if it makes use of all the digits 1 to n exactly once. For example, 2143 is a 4-digit pandigital and is also prime.
#What is the largest n-digit pandigital prime that exists?
cache=[]
def highPandigital():
    best=0
    num=0
    for i in cache:
        size=len(str(i))
        for j in range(1,size+1):
            if str(j) not in list(str(i)):
                break
        else:
            best=len(str(i)) if len(str(i))>=best else best
            num=i
    return best,num

            
            
if __name__=="__main__":
    import sys
    from p10 import primes_upto
    if len(sys.argv)<2:
        print "--input--> [(h)ighest] [non-zero integer]  <---output pandigital information"
        exit()
    
    cache.extend([i for i in primes_upto(int(sys.argv[1])) if i])
    print "The highest pandigital number is ",highPandigital()
Пример #3
0
            rotary[joined]=False
            return False
    rotary[joined]=True
    return True
def rotaries(top):
    for i in cache:
        if isRotary(i):
            yield i

if __name__=="__main__":
    import sys
    from p10 import primes_upto
    if len(sys.argv)<3:
        print "--input--> [(r)otary|(c)heck] [non-zero integer]  <---output rotary prime info"
        exit()


    if sys.argv[1] is "rotary" or (sys.argv[1])[0] is "r":
        cache.update([i for i in primes_upto(int(sys.argv[2])) if i])
        print "The rotary primes under %i  are",int(sys.argv[2])
        rots=1
        for i in rotaries(int(sys.argv[2])):
#            print i
            rots+=1
        print "There are %i circular numbers" % rots
        exit()
    if sys.argv[1] is "check" or (sys.argv[1])[0] is "c":
        cache.update([i for i in primes_upto(int(sys.argv[2])+1) if i])
        print sys.argv[2],"is",isRotary(int(sys.argv[2]))