Strange plus numbers: Difference between revisions

Content added Content deleted
m (another way: using a dynamic array here seems a bit convoluted)
Line 788: Line 788:
readln;
readln;
end.</lang>
end.</lang>

=== Alternate solution ===

<lang delphi>program StrangePlusNumbers;

const
m = 18;

var
pr: array [0..m] of Boolean;
n, k, a, b: Integer;
q: Boolean;
begin
// prime sieve
for n := 0 to m do
begin
q := n > 1;
for k := 2 to n - 1 do
if n mod k = 0 then q := False;
pr[n] := q
end;

k := 0;
for n := 100 to 500 do
begin
a := n div 10; // first two digits
b := n mod 100; // last two digits
if pr[a div 10 + a mod 10] and
pr[b div 10 + b mod 10] then
begin
Write(n);
Inc(k);
if k mod 10 = 0 then Writeln else Write(' ')
end
end
end.</lang>

{{out}}

<pre>111 112 114 116 120 121 123 125 129 141
143 147 149 161 165 167 202 203 205 207
211 212 214 216 230 232 234 238 250 252
256 258 292 294 298 302 303 305 307 320
321 323 325 329 341 343 347 349 383 385
389 411 412 414 416 430 432 434 438 470
474 476 492 494 498</pre>


=={{header|Draco}}==
=={{header|Draco}}==