# Factoring in Fortran

• Fortran

## Main Question or Discussion Point

Got to write a program that factors a given number(>1)

Here is what I have:

program Factors
implicit none
real::n, i

print*, "enter a number:"

i=2
do while (n>1)
if (mod(n, i)==0) then
i=i+1
n=n/i
else
write (*,*) ' X= ', X
end if
end do

end program

It works great but lets say you put in 600, it will give

2
2
2
3
5
5

which is right but the teacher wants it to say:

2**3*3*5**2

I dont have a clue how to make it do that.

Thanks for any help. :)

Related Programming and Computer Science News on Phys.org
CRGreathouse
Homework Helper
You'll need an inner loop that counts how many times a given factor is used, storing that in another variable. If it's used once write it with a "*", otherwise write it with a "**", the exponent, then another "*".

ok. I put this together but Im getting an error

program Factors
implicit none
real::n, i, x
integer::f, c=20

print*, "enter a positive integer:"

i=2
do while (n>1)
if (mod(n, i)==0) then
i=i+1
n=n/i
else

write(*, 100) i, "**", c
100 format(I2, A2, I2, $) end if end do end program I know I just signed up but this thing is due in a few hours. Any help is much appreciated. well what's the error? It says there is an error in the (I2, A2, I2,$). It has an arrow pointing to the first I2.