Strange plus numbers: Difference between revisions
Content added Content deleted
Not a robot (talk | contribs) (Add Modula-2) |
Not a robot (talk | contribs) (Add PL/I) |
||
Line 1,325: | Line 1,325: | ||
65 strange_plus numbers found: 111,112,114,116,120,...,474,476,492,494,498 |
65 strange_plus numbers found: 111,112,114,116,120,...,474,476,492,494,498 |
||
</pre> |
</pre> |
||
=={{header|PL/I}}== |
|||
<lang pli>StrangePlusNumbers: procedure options(main); |
|||
smallPrime: procedure(n) returns(bit); |
|||
declare n fixed; |
|||
return(n=2 | n=3 | n=5 | n=7 | n=11 | n=13 | n=17); |
|||
end smallPrime; |
|||
strangePlus: procedure(nn) returns(bit); |
|||
declare (n, nn, d1, d2) fixed; |
|||
do n=nn repeat(n/10) while(n>=10); |
|||
d1 = mod(n,10); |
|||
d2 = mod(n/10,10); |
|||
if ^smallPrime(d1+d2) then return('0'b); |
|||
end; |
|||
return('1'b); |
|||
end strangePlus; |
|||
declare (i, seen) fixed; |
|||
seen = 0; |
|||
do i=100 to 500; |
|||
if strangePlus(i) then do; |
|||
put edit(i) (F(4)); |
|||
seen = seen + 1; |
|||
if mod(seen,10) = 0 then put skip; |
|||
end; |
|||
end; |
|||
end StrangePlusNumbers;</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|PL/M}}== |
=={{header|PL/M}}== |