CMU 15-112 Summer 2018: Fundamentals of Programming and Computer Science
Homework 2 (Due Thurs 5-Jul, at 5pm)
- This assignment is SOLO. This means you may not look at other student's code or let other students look at your code for these problems. See the syllabus for details.
- To start:
- Create a folder named 'week1'
- Download
hw2.py
to that folder
- Edit hw2.py using Pyzo
- When you are ready, submit hw2.py to Autolab. For this hw, you may submit up to 20 times
(which is way more than you should require),
but only your last submission counts.
- Do not use string indexing, lists, or recursion in this assignment.
- Do not hardcode the test cases in your solutions.
- Piazza Post [2 pts]
Ask a question on Piazza about the homework or the course.
- nthCircularPrime [70 pts]
A circular prime is an integer number with the property that any rotation of that number's digits is prime. In this case, rotation refers to cycling the digits of a number; for example, the rotations of 1234 are 1234, 2341, 3412, and 4123. You can read more about this on the Wikipedia page. Single-digit primes are all circular, of course. To find the nth circular prime, you'll need to write isPrime and three other functions:
- rotateNumber [20 pts]
This function takes a non-negative integer number, x, and rotates that number's digits by one place. This would turn the number 1234 to 4123.
- isCircularPrime [30 pts]
This function takes a non-negative integer number, x, and determines whether that number is a circular prime. To do this, you'll need to check whether every rotation of the number is prime.
- nthCircularPrime [20 pts]
This function takes a non-negative integer number n, and returns the nth circular prime.
- longestDigitRun [28 pts]
Write the function longestDigitRun(n) that takes a possibly-negative int value n and returns the digit that has the longest consecutive run, or the smallest such digit if there is a tie. So, longestDigitRun(117773732) returns 7 (because there is a run of 3 consecutive 7's), as does longestDigitRun(-677886).