inital commit. about to start file IO.

This commit is contained in:
gabe venberg 2021-02-08 11:29:13 -06:00
commit 054879c11d
19 changed files with 564 additions and 0 deletions

16
collatz/collatz.py Executable file
View file

@ -0,0 +1,16 @@
def nextInSequence(number):
if isinstance(number, int):
if number % 2 == 0:
return number // 2
else:
return 3*number+1
else:
raise TypeError('input must be int!')
def seqenceLength(number):
length = 0
while number != 1:
number = nextInSequence(number)
length += 1
return length

24
collatz/collatzSearch.py Executable file
View file

@ -0,0 +1,24 @@
#! /usr/bin/env python3
import sys
import collatz
usage='usage: collatzSearch [digits] outputs the lenght of the collatz sequence for every number less than 10^digits'
if len(sys.argv)<2:
print(usage)
sys.exit()
digits = sys.argv[1]
try:
digits = int(digits)
except:
print(usage)
sys.exit()
nextNumber = 1
maxNumber = 10**digits
while nextNumber<maxNumber:
print('collatz length of '+str(nextNumber)+' is: \n'+str(collatz.seqenceLength(nextNumber)))
nextNumber += 1

21
collatz/collatzSequence.py Executable file
View file

@ -0,0 +1,21 @@
#! /usr/bin/env python3
import sys
import collatz
usage='usage: collatzSequence [number] prints the collatz sequence for the given number'
if len(sys.argv)<2:
Print(usage)
sys.exit()
number = sys.argv[1]
try:
number = int(number)
except:
print(usage)
sys.exit()
while number != 1:
number = collatz.nextInSequence(number)
print(number)