有fortran90编写程序,,,列出从1到100的所有质数。对的追分...
展开全部
program main
integer i, j
integer,parameter :: n = 100
logical(1):: flag(n)
integer :: num = 0
flag = .true.
do i = 2, sqrt(real(n))
if(.not.flag(i)) cycle
do j = i, n/i
flag(i*j) = .false.
enddo
enddo
do i = 2, n
if(flag(i)) then
num = num + 1
write(*,*) i
endif
enddo
end
这种方法也适合求大量质数,比如1到1E8内的质数,是速度最快的方法之一!
integer i, j
integer,parameter :: n = 100
logical(1):: flag(n)
integer :: num = 0
flag = .true.
do i = 2, sqrt(real(n))
if(.not.flag(i)) cycle
do j = i, n/i
flag(i*j) = .false.
enddo
enddo
do i = 2, n
if(flag(i)) then
num = num + 1
write(*,*) i
endif
enddo
end
这种方法也适合求大量质数,比如1到1E8内的质数,是速度最快的方法之一!
展开全部
program ex08
implicit none
integer::m,k,i,n=0
do m=1,100,2
k=sqrt(real(m))
do i=2,k
if(mod(m,i)==0) exit
end do
if(i>k) then
print 100,m
n=n+1
if(mod(n,5)==0) print* !每输出5个数换行
end if
end do
100 format(1X,I5\)
End
implicit none
integer::m,k,i,n=0
do m=1,100,2
k=sqrt(real(m))
do i=2,k
if(mod(m,i)==0) exit
end do
if(i>k) then
print 100,m
n=n+1
if(mod(n,5)==0) print* !每输出5个数换行
end if
end do
100 format(1X,I5\)
End
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
program ex08
implicit none
integer::m,k,i,n=0
do m=1,100,2
k=sqrt(real(m))
do i=2,k
if(mod(m,i)==0) exit
end do
if(i>k) then
print 100,m
n=n+1
if(mod(n,5)==0) print*
end if
end do
100 format(1X,I5\)
End
implicit none
integer::m,k,i,n=0
do m=1,100,2
k=sqrt(real(m))
do i=2,k
if(mod(m,i)==0) exit
end do
if(i>k) then
print 100,m
n=n+1
if(mod(n,5)==0) print*
end if
end do
100 format(1X,I5\)
End
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询