CoCalc Public Fileshey.sagewsOpen with one click!
Author: Madeline Boyes
Views : 129
# 8 # define a function sum_digits(n) that takes an integer and returns the sum of its digits def sum_digits(n): sum = 0 while (n != 0): sum = sum + int(n % 10) n = int(n/10) return sum
sum_digits(18)
9
sum_digits(98)
17
# 9 # write a program to find all triples with positive integers a, b, c <= 10 where a^2 + b^2 = c^2 for a in [1..100]: for b in [1..100]: c2 = a**2 + b**2 c = sqrt(c2) if int(c + 0.5) ** 2 == c2 and c <= 10: print "{}, {}, {}".format(a, b, c)
3, 4, 5 4, 3, 5 6, 8, 10 8, 6, 10
# 10 # define a function a_count(s) that takes a string and counts the number of occurrences of the letter "a" in the string def a_count(s): s = list(s) # turn string into list of characters acount = 0 for char in s: if char == "a": acount = acount + 1 return acount
a_count("aaaaa")
5
a_count("b")
0
# # 11 # write a program that produces 100 random numbers from [0, 100] and stores them in separate lines of a text file datafile = open("rand_store.txt", "w") # create a file and tell sage we are writing for i in [1..100]: # loop through the WRITE command 100 times datafile.write(str(randint(0, 100))) # tell sage what we want to write into the file. remember to turn randint into string datafile.write("\n") # print each on a new line datafile.close() # close the file once we have written the 100 lines
# 12 # define a function read_data(filename) that opens the file called filename and prints a list of the numbers in the file def read_data(filename): filename = open("rand_store.txt", "r") # open the file and tell sage we we are doing. we are reading, so "r" numlist = [] for i in [0..99]: dline = filename.readline() dline = int(dline.rstrip()) numlist.append(dline) print numlist
read_data(datafile)
[68, 77, 70, 40, 90, 27, 79, 37, 99, 98, 1, 78, 82, 24, 16, 66, 55, 0, 17, 47, 44, 98, 73, 73, 21, 36, 64, 10, 67, 46, 4, 35, 19, 29, 14, 94, 0, 30, 62, 100, 41, 27, 59, 35, 28, 4, 82, 8, 86, 58, 3, 54, 50, 100, 79, 27, 68, 95, 62, 38, 46, 39, 2, 83, 19, 10, 4, 41, 87, 98, 11, 82, 30, 57, 89, 15, 46, 69, 26, 68, 44, 65, 78, 19, 70, 84, 66, 81, 57, 30, 38, 22, 28, 34, 23, 81, 16, 62, 79, 76]
# 13 # use map and an anonymous (lambda) function to produce cubes of the numbers in the list [3, 7, 2, 5] testlist = [3, 7, 2, 5] map(lambda x: x**3, testlist)
[27, 343, 8, 125]
# 14 # consider the following sequence defined by a function on the positive integers t(1) = 3, t(2) = 4, # t(3) = 5, t(n) = t(n - 1) + t(n - 2) + t(n - 3) # define a recursive function recurst(n) that takes a positive integer n and outputs t(n). find t(10) def recurst(n): if n == 1: return 3 elif n == 2: return 4 elif n == 3: return 5 elif n > 3: tn = recurst(n - 1) + recurst(n - 2) + recurst(n - 3) return tn
recurst(10)
440