inital commit. about to start file IO.
This commit is contained in:
commit
054879c11d
19 changed files with 564 additions and 0 deletions
16
collatz/collatz.py
Executable file
16
collatz/collatz.py
Executable 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
24
collatz/collatzSearch.py
Executable 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
21
collatz/collatzSequence.py
Executable 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)
|
Loading…
Add table
Add a link
Reference in a new issue