Totient function: Difference between revisions

added Arturo
(added Arturo)
Line 1,226:
Number of primes to 100000 : 9592
</pre>
 
=={{header|Arturo}}==
 
<syntaxhighlight lang="arturo">totient: function [n][
tot: new n
i: 2
while -> n >= i * i [
if 0 = n % i [
while -> 0 = n % i -> n: n / i
'tot - tot / i
]
if 2 = i -> i: 1
'i + 2
]
if n > 1 -> 'tot - tot / n
return tot
]
 
primes: 0
loop 1..100000 'i [
t: totient i
prime?: 1 = i - t
if i < 26 [
prints ~« Φ(|pad.with:`0` to :string i 2|) = |pad to :string t 2|
if prime? -> prints ", prime"
print ""
]
if 50 = i -> print ""
if in? i [100 1000 10000 100000] -> print ~« |primes| primes =< |i|
if prime? -> 'primes + 1
]</syntaxhighlight>
 
{{out}}
 
<pre>Φ(01) = 1
Φ(02) = 1, prime
Φ(03) = 2, prime
Φ(04) = 2
Φ(05) = 4, prime
Φ(06) = 2
Φ(07) = 6, prime
Φ(08) = 4
Φ(09) = 6
Φ(10) = 4
Φ(11) = 10, prime
Φ(12) = 4
Φ(13) = 12, prime
Φ(14) = 6
Φ(15) = 8
Φ(16) = 8
Φ(17) = 16, prime
Φ(18) = 6
Φ(19) = 18, prime
Φ(20) = 8
Φ(21) = 12
Φ(22) = 10
Φ(23) = 22, prime
Φ(24) = 8
Φ(25) = 20
 
25 primes =< 100
168 primes =< 1000
1229 primes =< 10000
9592 primes =< 100000</pre>
 
=={{header|AutoHotkey}}==
1,532

edits