Find prime n such that reversed n is also prime: Difference between revisions
Content added Content deleted
m (Oops!) |
(Add Seed7 example) |
||
Line 619: | Line 619: | ||
found 34 primes |
found 34 primes |
||
done... |
done... |
||
</pre> |
|||
=={{header|Seed7}}== |
|||
<lang seed7>$ include "seed7_05.s7i"; |
|||
const func boolean: isPrime (in integer: number) is func |
|||
result |
|||
var boolean: prime is FALSE; |
|||
local |
|||
var integer: upTo is 0; |
|||
var integer: testNum is 3; |
|||
begin |
|||
if number = 2 then |
|||
prime := TRUE; |
|||
elsif odd(number) and number > 2 then |
|||
upTo := sqrt(number); |
|||
while number rem testNum <> 0 and testNum <= upTo do |
|||
testNum +:= 2; |
|||
end while; |
|||
prime := testNum > upTo; |
|||
end if; |
|||
end func; |
|||
const func integer: revDigits (in var integer: number) is func |
|||
result |
|||
var integer: revNum is 0; |
|||
begin |
|||
while number > 0 do |
|||
revNum *:= 10; |
|||
revNum +:= number rem 10; |
|||
number := number div 10; |
|||
end while; |
|||
end func; |
|||
const func boolean: isRevPrime (in integer: number) is |
|||
return isPrime(number) and isPrime(revDigits(number)); |
|||
const proc: main is func |
|||
local |
|||
var integer: number is 0; |
|||
var integer: count is 0; |
|||
begin |
|||
for number range 1 to 499 do |
|||
if isRevPrime(number) then |
|||
write(number <& " "); |
|||
incr(count); |
|||
end if; |
|||
end for; |
|||
writeln; |
|||
writeln("Found " <& count <& " reverse primes < 500."); |
|||
end func;</lang> |
|||
{{out}} |
|||
<pre> |
|||
2 3 5 7 11 13 17 31 37 71 73 79 97 101 107 113 131 149 151 157 167 179 181 191 199 311 313 337 347 353 359 373 383 389 |
|||
Found 34 reverse primes < 500. |
|||
</pre> |
</pre> |
||