Jump to content

Perfect totient numbers: Difference between revisions

Rename Perl 6 -> Raku, alphabetize, minor clean-up
(→‎{{header|Perl 6}}: Slightly less inefficient)
(Rename Perl 6 -> Raku, alphabetize, minor clean-up)
Line 59:
3 9 15 27 39 81 111 183 243 255 327 363 471 729 2187 2199 3063 4359 4375 5571
</pre>
 
=={{header|C}}==
Calculates as many perfect Totient numbers as entered on the command line.
Line 630 ⟶ 631:
3 9 15 27 39 81 111 183 243 255 327 363 471 729 2187 2199 3063 4359 4375 5571
</pre>
 
=={{header|Pascal}}==
I am using a really big array to calculate the Totient of every number up to 1.162.261.467, the 46.te perfect totient number.
Line 831 ⟶ 833:
 
printf "The first twenty perfect totient numbers:\n%s\n", join ' ', @perfect;</lang>
{{out}}
<pre>The first twenty Perfect totient numbers:
3 9 15 27 39 81 111 183 243 255 327 363 471 729 2187 2199 3063 4359 4375 5571</pre>
 
=={{header|Perl 6}}==
{{works with|Rakudo|2018.11}}
 
<lang perl6>use Prime::Factor;
 
my \𝜑 = lazy 0, |(1..*).hyper.map: -> \t { t * [*] t.&prime-factors.squish.map: 1 - 1/* }
my \𝜑𝜑 = Nil, |(3, *+2 … *).grep: -> \p { p == sum 𝜑[p], { 𝜑[$_] } … 1 };
 
put "The first twenty Perfect totient numbers:\n", 𝜑𝜑[1..20];</lang>
{{out}}
<pre>The first twenty Perfect totient numbers:
Line 1,074 ⟶ 1,063:
(reverse ns)
</lang>
 
=={{header|Perl 6Raku}}==
(formerly Perl 6)
{{works with|Rakudo|2018.11}}
 
<lang perl6>use Prime::Factor;
 
my \𝜑 = lazy 0, |(1..*).hyper.map: -> \t { t * [*] t.&prime-factors.squish.map: 1 - 1/* }
my \𝜑𝜑 = Nil, |(3, *+2 … *).grep: -> \p { p == sum 𝜑[p], { 𝜑[$_] } … 1 };
 
put "The first twenty Perfect totient numbers:\n", 𝜑𝜑[1..20];</lang>
{{out}}
<pre>The first twenty Perfect totient numbers:
3 9 15 27 39 81 111 183 243 255 327 363 471 729 2187 2199 3063 4359 4375 5571</pre>
 
=={{header|REXX}}==
===unoptimized===
10,343

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.