CalmoSoft primes: Difference between revisions
Content added Content deleted
(→{{header|ALGOL 68}}: comments) |
(Added XPL0 example.) |
||
Line 308: | Line 308: | ||
7 + 11 + 13 + 17 + 19 + 23 + 29 + 31 + 37 + 41 + 43 + 47 + 53 + 59 + 61 + 67 + 71 + 73 + 79 + 83 + 89 = 953 which is prime |
7 + 11 + 13 + 17 + 19 + 23 + 29 + 31 + 37 + 41 + 43 + 47 + 53 + 59 + 61 + 67 + 71 + 73 + 79 + 83 + 89 = 953 which is prime |
||
</pre> |
|||
=={{header|XPL0}}== |
|||
<syntaxhighlight lang "XPL0">include xpllib; \for IsPrime and Print |
|||
int Primes(100), PrimeSums(100); |
|||
int I, N, Size, Head, Tail, Longest, Sum, SaveHead, SaveTail; |
|||
[I:= 0; \make table of primes |
|||
for N:= 2 to 100-1 do |
|||
if IsPrime(N) then |
|||
[Primes(I):= N; I:= I+1]; |
|||
Size:= I; \make table of sums |
|||
PrimeSums(0):= Primes(0); |
|||
for I:= 1 to Size-1 do |
|||
PrimeSums(I):= PrimeSums(I-1) + Primes(I); |
|||
Longest:= 0; \find longest sequence |
|||
for Head:= Size-1 downto 0 do |
|||
[Sum:= PrimeSums(Head); |
|||
for Tail:= 0 to Head do |
|||
[if Head-Tail > Longest then |
|||
[if IsPrime(Sum) then |
|||
[Longest:= Head-Tail; |
|||
SaveHead:= Head; |
|||
SaveTail:= Tail; |
|||
]; |
|||
]; |
|||
Sum:= Sum - Primes(Tail); |
|||
]; |
|||
]; |
|||
Print( "The longest sequence of CalmoSoft primes < 100 is %d:\n", Longest+1); |
|||
Sum:= 0; |
|||
for I:= SaveTail to SaveHead do |
|||
[Sum:= Sum + Primes(I); |
|||
IntOut(0, Primes(I)); |
|||
if I # SaveHead then ChOut(0, ^+); |
|||
]; |
|||
Print(" = %d\n", Sum); |
|||
]</syntaxhighlight> |
|||
{{out}} |
|||
<pre> |
|||
The longest sequence of CalmoSoft primes < 100 is 21: |
|||
7+11+13+17+19+23+29+31+37+41+43+47+53+59+61+67+71+73+79+83+89 = 953 |
|||
</pre> |
</pre> |