CMU 15-112 Spring 2019: Fundamentals of Programming and Computer Science
Check 2.2
-
Check 2.2
Write the functionsumFactors(n)
that takes a number, n, and returns the sum of all the factors of n (including n itself). You may assume n is positive.def sumFactors(n): # Reminder: to find if a k is a factor of n, use n % k return def testSumFactors(): print("Testing sumFactors...", end="") assert(sumFactors(20) == 42) assert(sumFactors(13) == 14) assert(sumFactors(1) == 1) assert(sumFactors(100) == 217) print("passed!") testSumFactors()
import sys def set_certificate(certificate_div_id, certificate): document[certificate_div_id].textContent = certificate def get_student_code(student_code_div_id): raw_student_code = document[student_code_div_id].textContent return window.patchCodeToCheckTimeout(raw_student_code, 'check_timeout();'); class captureIO: def __init__(self): self.captured = [] def get_output(self): out = "" for c in self.captured: out += str(c) return out def write(self, data): self.captured.append(data) def flush(self): pass def make_certificate(student_code_div_id, certificate_div_id): try: student_code = get_student_code(student_code_div_id) certificate = [] capture = captureIO() sys.stdout = capture sys.stderr = capture exec(student_code) for i in range(1,50): result = sumFactors(i) certificate.append((result, type(result))) set_certificate(certificate_div_id, str(certificate)) except: set_certificate(certificate_div_id, "error")
Back to notes