added ability to specify starting number of digits for collatz search, and a quick and dirty test of a power of 2 algorithm.
This commit is contained in:
		
							parent
							
								
									054879c11d
								
							
						
					
					
						commit
						828aaaee0a
					
				
					 3 changed files with 29 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -3,7 +3,9 @@
 | 
			
		|||
import sys
 | 
			
		||||
import collatz
 | 
			
		||||
 | 
			
		||||
usage='usage: collatzSearch [digits] outputs the lenght of the collatz sequence for every number less than 10^digits'
 | 
			
		||||
usage='usage: collatzSearch [digits] ([startDigits]) outputs the lenght of the collatz sequence for every number less than 10^digits, starting with 10^startDidgits.'
 | 
			
		||||
 | 
			
		||||
nextNumber = 1
 | 
			
		||||
 | 
			
		||||
if len(sys.argv)<2:
 | 
			
		||||
    print(usage)
 | 
			
		||||
| 
						 | 
				
			
			@ -15,8 +17,13 @@ try:
 | 
			
		|||
except:
 | 
			
		||||
    print(usage)
 | 
			
		||||
    sys.exit()
 | 
			
		||||
if len(sys.argv)>=3:
 | 
			
		||||
    try:
 | 
			
		||||
        nextNumber = 10**int(sys.argv[2])
 | 
			
		||||
    except:
 | 
			
		||||
        print(usage)
 | 
			
		||||
        sys.exit()
 | 
			
		||||
 | 
			
		||||
nextNumber = 1
 | 
			
		||||
maxNumber = 10**digits
 | 
			
		||||
 | 
			
		||||
while nextNumber<maxNumber:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15,7 +15,9 @@ try:
 | 
			
		|||
except:
 | 
			
		||||
    print(usage)
 | 
			
		||||
    sys.exit()
 | 
			
		||||
 | 
			
		||||
seqLength = 0
 | 
			
		||||
while number != 1:
 | 
			
		||||
    number = collatz.nextInSequence(number)
 | 
			
		||||
    seqLength += 1
 | 
			
		||||
    print(number)
 | 
			
		||||
print('length of '+str(seqLength))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										17
									
								
								powerOf2.py
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										17
									
								
								powerOf2.py
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,17 @@
 | 
			
		|||
#! /usr/bin/env python3
 | 
			
		||||
 | 
			
		||||
def slowMethod(n):
 | 
			
		||||
    while (n!=1):
 | 
			
		||||
        if (n%2!=0):
 | 
			
		||||
            return False
 | 
			
		||||
        n = n //2
 | 
			
		||||
    return True
 | 
			
		||||
 | 
			
		||||
def fastMethod(n):
 | 
			
		||||
    return (n&(n-1))==0
 | 
			
		||||
 | 
			
		||||
for n in range(1,1000000):
 | 
			
		||||
    if slowMethod(n):
 | 
			
		||||
        print(n)
 | 
			
		||||
    if fastMethod(n):
 | 
			
		||||
        print(n)
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue