Is there a more efficient way to make this program?
#This is The Collatz Sequence Program
def collatz(number):
if number % 2 == 0:
evenNumber = number // 2
print(evenNumber)
return evenNumber
elif number % 2 == 1:
oddNumber = 3 * number + 1
print(oddNumber)
return oddNumber
print('Please Enter a Number:')
try:
n = int(input())
except ValueError:
print('You must enter an integer:')
n = int(input())
value = collatz(n)
while value != 1 :
value = collatz(value)
Link: https://en.wikipedia.org/wiki/Collatz_conjecture
when you type 3 it goes like follows :
3
10
5
16
8
4
2
1
and it always ends with 1.
Check this out:
def collatz(number):
if number % 2 == 0:
return number // 2
elif number % 2 == 1:
return 3 * number + 1
while True:
try:
n = int(input('Please Enter a Number:'))
print(n)
while n!= 1:
n = collatz(n)
print(n)
break
except ValueError:
print('You must enter an integer')
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.