Idoneal numbers: Difference between revisions

Content added Content deleted
(Added PL/0)
Line 804: Line 804:
273 280 312 330 345 357 385 408 462 520
273 280 312 330 345 357 385 408 462 520
760 840 1320 1365 1848</pre>
760 840 1320 1365 1848</pre>

=={{header|RPL}}==
{{trans|Python}}
{{works with|Halcyon Calc|4.2.7}}
{| class="wikitable"
! RPL code
! Comment
|-
|
≪ → num
≪ 1 SF
1 num FOR a
a 1 + num FOR b
IF a b DUP2 * + + num > THEN
num 'b' STO
ELSE b 1 + num FOR c
a b * b c * + a c * +
IF DUP num == THEN
DROP 1 CF num DUP DUP 'a' STO 'b' STO 'c' STO
ELSE IF num > THEN
num 'c' STO END
END
NEXT END
NEXT NEXT
1 FS?
≫ ≫ ‘IDNL?’ STO
|
''' IDNL?''' ''( n -- boolean )''
Return value will be given by flag #1
for a in range(1, num):
for b in range(a + 1, num):
if a * b + a + b > num:
break
for c in range(b + 1, num):
sum3 = a * b + b * c + a * c
if sum3 == num:
return False
if sum3 > num:
break
.
.
.
Return boolean value
.
|}
{{in}}
<pre>
≪ {} 1 255 FOR n IF n IDNL? THEN n + END NEXT ≫ EVAL
≪ {} 256 2000 FOR n IF n IDNL? THEN n + END NEXT ≫ EVAL
</pre>
{{out}}
<pre>
2: { 1 2 3 4 5 6 7 8 9 10 12 13 15 16 18 21 22 24 25 28 30 33 37 40 42 45 48 57 58 60 70 72 78 85 88 93 102 105 112 120 130 133 165 168 177 190 210 232 240 253 }
1: { 273 280 312 330 345 357 385 408 462 520 760 840 1320 1365 1848 }
</pre>


=={{header|Swift}}==
=={{header|Swift}}==