Factoring in Fortran

  • Fortran
  • Thread starter Jeepster
  • Start date
4
0

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:"
read*, n

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. :)
 

Answers and Replies

CRGreathouse
Science Advisor
Homework Helper
2,817
0
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 "*".
 
4
0
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:"
read*, n


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
 
4
0
I know I just signed up but this thing is due in a few hours.

Any help is much appreciated.
 
1,703
5
well what's the error?
 
4
0
It says there is an error in the (I2, A2, I2, $). It has an arrow pointing to the first I2.
 

Related Threads for: Factoring in Fortran

  • Last Post
Replies
6
Views
3K
  • Last Post
Replies
5
Views
15K
  • Last Post
Replies
2
Views
1K
  • Last Post
Replies
1
Views
2K
  • Last Post
Replies
5
Views
5K
  • Last Post
Replies
5
Views
2K
  • Last Post
Replies
1
Views
3K
  • Last Post
Replies
2
Views
3K
Top