Add all the A tasks
This commit is contained in:
parent
2dd7375f96
commit
051504d65b
1608 changed files with 18584 additions and 0 deletions
28
Task/Arithmetic-Rational/Fortran/arithmetic-rational-2.f
Normal file
28
Task/Arithmetic-Rational/Fortran/arithmetic-rational-2.f
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
program perfect_numbers
|
||||
|
||||
use module_rational
|
||||
implicit none
|
||||
integer, parameter :: n_min = 2
|
||||
integer, parameter :: n_max = 2 ** 19 - 1
|
||||
integer :: n
|
||||
integer :: factor
|
||||
type (rational) :: sum
|
||||
|
||||
do n = n_min, n_max
|
||||
sum = 1 // n
|
||||
factor = 2
|
||||
do
|
||||
if (factor * factor >= n) then
|
||||
exit
|
||||
end if
|
||||
if (modulo (n, factor) == 0) then
|
||||
sum = rational_simplify (sum + (1 // factor) + (factor // n))
|
||||
end if
|
||||
factor = factor + 1
|
||||
end do
|
||||
if (sum % numerator == 1 .and. sum % denominator == 1) then
|
||||
write (*, '(i0)') n
|
||||
end if
|
||||
end do
|
||||
|
||||
end program perfect_numbers
|
||||
Loading…
Add table
Add a link
Reference in a new issue