Strange plus numbers: Difference between revisions
Content added Content deleted
m (→{{header|R}}) |
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}}== |