Factoring Integers Into Primes

Mathematical background

Problems
One way of factoring an integer n into primes is by trial
division. This algorithm can be described as follows:
Given: a positive integer n
Set d = 2 // the trial divisor
While n > 1,
If d divides n,
then
write down the factor d,
replace n by n/d
else
replace d by d + 1
Here is how it works for n = 60:
1. d = 2 divides n = 60, so 2 is a factor.
After replacement n = 30.
Factors: 2
2. d = 2 divides n = 30, so 2 is a factor.
After replacement n = 15.
Factors: 2 2
3. d = 2 does not divide 2, so we
set d = 3;
Factors: 2 2
4. d = 3 divides n = 15, so 3 is a factor
After replacement, n = 5
Factors: 2 2 3
5. d = 3 does not divide n = 5, so 3 is not a factor.
Set d = 4
Factors: 2 2 3
6. d = 4 does not divide n = 5, so we
set d = 5
Factors: 2 2 3
7. d = 5 divides 5, so 5 is a factor.
After replacement, n = 1.
Factors: 2 2 3 5
8. n = 1, so we stop

Develop a C program which factors integers using this
algorithm. Use the long data type so that you
can factor large integers. Then factor the following:
12, 123, 1234, 12345, etc., up to 123456789. Factor
also the integer 1234567898.

How does the running time of the program depend on the
integer to be factored? In thinking about this problem,
think about what kind of computation your program does
most often, and how many times it does it.
Back to syllabus
Back to Department of Mathematics, University of Utah
Last modified: Feb 21, 1995
Copyright © 1995 Department of Mathematics, University of
Utah