Data update
This commit is contained in:
parent
8e4e15fa56
commit
72eb4943cb
1853 changed files with 35514 additions and 9441 deletions
66
Task/Additive-primes/Fortran/additive-primes.f
Normal file
66
Task/Additive-primes/Fortran/additive-primes.f
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
program AdditivePrimes
|
||||
implicit none
|
||||
|
||||
integer :: i, j, digit_sum, count
|
||||
logical :: is_prime
|
||||
|
||||
! Arrays to track prime numbers and additive primes
|
||||
logical, dimension(500) :: prime_check
|
||||
logical, dimension(500) :: additive_prime_check
|
||||
|
||||
! Initialize arrays
|
||||
prime_check = .true.
|
||||
prime_check(1) = .false.
|
||||
additive_prime_check = .false.
|
||||
|
||||
! Sieve of Eratosthenes to find primes
|
||||
do i = 2, int(sqrt(real(500)))
|
||||
if (prime_check(i)) then
|
||||
do j = i*i, 500, i
|
||||
prime_check(j) = .false.
|
||||
end do
|
||||
end if
|
||||
end do
|
||||
|
||||
! Find additive primes
|
||||
count = 0
|
||||
do i = 2, 500
|
||||
if (prime_check(i)) then
|
||||
! Calculate digit sum
|
||||
digit_sum = sum_digits(i)
|
||||
|
||||
! Check if digit sum is also prime
|
||||
if (prime_check(digit_sum)) then
|
||||
additive_prime_check(i) = .true.
|
||||
count = count + 1
|
||||
end if
|
||||
end if
|
||||
end do
|
||||
|
||||
! Print results
|
||||
print *, "Additive Primes less than 500:"
|
||||
do i = 2, 500
|
||||
if (additive_prime_check(i)) then
|
||||
print *, i
|
||||
end if
|
||||
end do
|
||||
|
||||
print *, "Total number of additive primes:", count
|
||||
|
||||
contains
|
||||
|
||||
! Function to calculate sum of digits
|
||||
function sum_digits(num) result(total)
|
||||
integer, intent(in) :: num
|
||||
integer :: total, temp_num
|
||||
|
||||
total = 0
|
||||
temp_num = num
|
||||
|
||||
do while (temp_num > 0)
|
||||
total = total + mod(temp_num, 10)
|
||||
temp_num = temp_num / 10
|
||||
end do
|
||||
end function sum_digits
|
||||
|
||||
end program AdditivePrimes
|
||||
Loading…
Add table
Add a link
Reference in a new issue