Perfect totient numbers: Difference between revisions

Add BCPL
(Add MAD)
(Add BCPL)
Line 91:
3 9 15 27 39 81 111 183 243 255 327 363 471 729 2187 2199 3063 4359 4375 5571
</pre>
 
=={{header|BCPL}}==
<lang bcpl>get "libhdr"
 
let gcd(a,b) = b=0 -> a, gcd(b, a rem b)
 
let totient(n) = valof
$( let r = 0
for i=1 to n-1
if gcd(n,i) = 1 then r := r + 1
resultis r
$)
 
let perfect(n) = valof
$( let sum = 0 and x = n
$( x := totient(x)
sum := sum + x
$) repeatuntil x = 1
resultis sum = n
$)
 
let start() be
$( let seen = 0 and n = 3
while seen < 20
$( if perfect(n)
$( writef("%N ", n)
seen := seen + 1
$)
n := n + 2
$)
wrch('*N')
$)</lang>
{{out}}
<pre>3 9 15 27 39 81 111 183 243 255 327 363 471 729 2187 2199 3063 4359 4375 5571</pre>
 
=={{header|C}}==
2,095

edits