我的 Fortran 程序有一个问题,它除了计算素数分解(或应该做)之外什么也不做。这就是错误:
C:\MinGW\Fortran>gfortran aufg3.f90
aufg3.f90:15.15:
if (prim(i) != 0 .and. modulo(n, prim(i)) == 0) then
1
Error: Missing ')' in statement at or before (1)
aufg3.f90:19.7:
end if
1
Error: Expecting END DO statement at (1)
aufg3.f90:34.13:
if (prim(i) != 0) then
1
Error: Missing ')' in statement at or before (1)
aufg3.f90:38.5:
end if
1
Error: Expecting END DO statement at (1)
我尝试了一切,但完全不知道可能出了什么问题。感谢您的帮助。这是代码:
program aufg3
implicit none
integer :: n, i
integer, allocatable, dimension(:) :: prim
do
print *, 'Bitte natürliche Zahl eingeben, "0" für Abbruch: '
read *, n
if (n == 0) exit
allocate(prim(2:n))
call era(prim, n)
print *, n, ' = 1'
do
if (n == 1) exit
do i = 2, n
if (prim(i) != 0 .and. modulo(n, prim(i)) == 0) then
print *, ' * ', prim(i)
n = n / prim(i)
exit
end if
end do
end do
deallocate(prim)
end do
end program
子程序纪元(prim, m)
整数,意图(in)::m
整数,维度(2:m) :: prim
整数::i,j
我 = 2, m
prim(i) = i
结束做
i = 2,整数(sqrt(实数(m)))
如果 (prim(i) != 0) 那么
做 j = i*i, m, i
prim(j) = 0
结束做
万一
结束做
结束子程序