Duffinian numbers: Difference between revisions
Content added Content deleted
Tag: Manual revert |
imported>Maxima enthusiast No edit summary |
||
Line 1,494: | Line 1,494: | ||
860671-860673 910115-910117 913951-913953 963271-963273 968255-968257 |
860671-860673 910115-910117 913951-913953 963271-963273 968255-968257 |
||
991231-991233</pre> |
991231-991233</pre> |
||
=={{header|Maxima}}== |
|||
<syntaxhighlight lang="maxima"> |
|||
/* Predicate functions that checks wether an integer is a Duffinian number or not */ |
|||
duffinianp(n):=if n#1 and not primep(n) and gcd(n,divsum(n))=1 then true$ |
|||
/* Function that returns a list of the first len Duffinian numbers */ |
|||
duffinian_count(len):=block( |
|||
[i:1,count:0,result:[]], |
|||
while count<len do (if duffinianp(i) then (result:endcons(i,result),count:count+1),i:i+1), |
|||
result)$ |
|||
/* Function that returns a list of the first len Duffinian triples */ |
|||
duffinian_triples_count(len):=block( |
|||
[i:1,count:0,result:[]], |
|||
while count<len do (if map(duffinianp,[i,i+1,i+2])=[true,true,true] then (result:endcons([i,i+1,i+2],result),count:count+1),i:i+1), |
|||
result)$ |
|||
/* Test cases */ |
|||
/* First 50 Duffinian numbers */ |
|||
duffinian_count(50); |
|||
/* First 15 Duffinian triples */ |
|||
duffinian_triples_count(15); |
|||
</syntaxhighlight> |
|||
{{out}} |
|||
<pre> |
|||
[4,8,9,16,21,25,27,32,35,36,39,49,50,55,57,63,64,65,75,77,81,85,93,98,100,111,115,119,121,125,128,129,133,143,144,155,161,169,171,175,183,185,187,189,201,203,205,209,215,217] |
|||
[[63,64,65],[323,324,325],[511,512,513],[721,722,723],[899,900,901],[1443,1444,1445],[2303,2304,2305],[2449,2450,2451],[3599,3600,3601],[3871,3872,3873],[5183,5184,5185],[5617,5618,5619],[6049,6050,6051],[6399,6400,6401],[8449,8450,8451]] |
|||
</pre> |
|||
=={{header|Modula-2}}== |
=={{header|Modula-2}}== |