Midterm Programming Assignment
This midterm consists of three programming problems. Turn in your code
and the printout of your test runs for each problem. Your code has to
be sufficiently tested. Your testing will be a factor in determining
your grade. You may discuss the problems with each other, but sharing
code is strictly prohibited (and will be ruthlessly punished).
- P1.
- Write the function divide that implements integer
division using only addition and subtraction. Assume the prototype
int divide (int, int) . Your program should work the same way as
C++ integer division for positive integers. For 1 point of extra credit, it
should behave the same way as C++ division for all integer inputs.
Test your function by calling it from main() in various integer
arithmetic expressions.
- P2.
- Write a program that inputs a positive integer and
prints all of its prime divisors. If a prime divides the number several
times, print that prime as many times, i.e. the product of all primes
printed must equal the input number. After factoring a number,
your program must ask for a new number and so on, until the number
entered is negative, in which case the program exits.
- P3.
- Write a program that inputs a positive integer number
and prints that number in word form. Your program must work
correctly for numbers under one million. For 1 point of extra credit,
make it work for numbers less than 2 billion.
Hints: (1) Use the switch statement (2) Remember that numbers
between 10 and 20 require special treatment.
Examples:
> factor
18
18: 2 3 3
25
25: 5 5
13
13: 13
159
159: 3 53
720
720: 2 2 2 2 3 3 5
2048
2048: 2 2 2 2 2 2 2 2 2 2 2
-10
Bye!
> number
125
one hundred twenty-five.
12
twelve.
1200
one thousand.
two hundred.
12000
twelve thousand.
12125
twelve thousand.
one hundred twenty-five.
0
zero.
59
fifty-nine.
Sergey Bratus
11/1/1998