#
CMU 15-112 Summer 2018: Fundamentals of Programming and Computer Science

Homework 2 (Due Wed 23-May, 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.

**nthCircularPrime [100 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 [30 pts]**

This function takes an integer number, x, and rotates that number's digits by one place. This would turn the number 1234 to 4123.

**isCircularPrime [40 pts]**

This function takes an 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 [30 pts]**

This function takes an integer number n, and returns the nth circular prime.