用Fortran语言编写程序:编写程序。如果一个数的因子之和等于这个数的本身,则称这样的数“完全 数”。例如整数 28 的因子为 1、2、4、7、14,其和 1+2+4+7+14=28,因此 28 是一个完全数。从键盘上输入整数 M 和 N, 求出 M 和 N 之间的所有完全数的数目。
时间: 2024-02-22 11:59:30 浏览: 137
下面是用Fortran语言编写的程序:
```
program perfect_numbers
implicit none
integer :: m, n, i, j, sum, count
! 从键盘读入整数 M 和 N
write(*, "('Enter the value of M:')", advance="no")
read(*, *) m
write(*, "('Enter the value of N:')", advance="no")
read(*, *) n
! 对于 M 到 N 之间的每个数,求出其因子之和
count = 0
do i = m, n
sum = 0
do j = 1, i/2
if (mod(i, j) == 0) then
sum = sum + j
endif
enddo
! 如果因子之和等于这个数本身,则输出它,并将计数器加 1
if (sum == i) then
write(*, "(i5, ' is a perfect number')")
count = count + 1
endif
enddo
! 输出完全数的个数
write(*, "('There are ', i5, ' perfect numbers between ', i5, ' and ', i5)", count, m, n)
end program perfect_numbers
```
程序中使用了两个嵌套的 do 循环,分别对于 M 到 N 之间的每个数和每个数的因子进行求和。如果因子之和等于这个数本身,则输出它,并将计数器加 1。最后输出完全数的个数。
阅读全文