Primes: Difference between revisions
No edit summary |
No edit summary |
||
(One intermediate revision by one other user not shown) | |||
Line 23: | Line 23: | ||
<p>For example,</p> | <p>For example,</p> | ||
<apll> | <apll><pre> | ||
2 2 2 3 5 | π120 | ||
2 2 2 3 5 | |||
4611686018427387903 | ×/⎕←π⎕←¯1+2*62 | ||
3 715827883 2147483647 | 4611686018427387903 | ||
4611686018427387903 | 3 715827883 2147483647 | ||
4611686018427387903 | |||
2305843009213693951 | π¯1+2*61 | ||
2305843009213693951 | |||
⍴π1 | |||
0 | |||
c←×/(a b)←1π?2⍴10*25x ⍝ Create two random 25-digit primes and their product | |||
a b c | |||
213379889007584782100623 7822072437371562999056237 1669072948495632279507879309030439547039369735651 | |||
πc ⍝ Factor the 50-digit number | |||
213379889007584782100623 7822072437371562999056237 | |||
⎕T-(πc)⊢⊢⎕T ⍝ How many seconds of CPU time to factor a 50-digit number? | |||
0.6204937084112316</pre></apll> | |||
Line 118: | Line 126: | ||
<p>For example, how many primes are less then or equal to <apll>1000003</apll>?</p> | <p>For example, how many primes are less then or equal to <apll>1000003</apll>?</p> | ||
<apll> | <apll><pre> | ||
¯2π1000003 | |||
15485927</pre></apll> | |||
== Previous Prime Function == | == Previous Prime Function == | ||
Line 127: | Line 136: | ||
<p>For example, what is the prime that immediately precedes <apll>1000000</apll>?</p> | <p>For example, what is the prime that immediately precedes <apll>1000000</apll>?</p> | ||
<apll> | <apll><pre> | ||
¯1π1000000 | |||
999983</pre></apll> | |||
== Primality Test == | == Primality Test == | ||
Line 136: | Line 146: | ||
<p>For example, is <apll>1000003</apll> a prime?</p> | <p>For example, is <apll>1000003</apll> a prime?</p> | ||
<apll> | <apll><pre> | ||
0π1000003 | |||
1</pre></apll> | |||
<p>List the primes up to 100</p> | <p>List the primes up to 100</p> | ||
<apll> | <apll><pre> | ||
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97</apll> | ⍸0π⍳100 | ||
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97</pre></apll> | |||
== Next Prime Function == | == Next Prime Function == | ||
Line 150: | Line 162: | ||
<p>For example, what is the next prime after <apll>1000000</apll>?</p> | <p>For example, what is the next prime after <apll>1000000</apll>?</p> | ||
<apll> | <apll><pre> | ||
1π1000000 | |||
1000003</pre></apll> | |||
== Number Of Primes Function == | == Number Of Primes Function == | ||
Line 159: | Line 172: | ||
<p>For example, what is the <apll>15485927</apll>th prime?</p> | <p>For example, what is the <apll>15485927</apll>th prime?</p> | ||
<apll> | <apll><pre> | ||
2π15485927 | |||
1000003</pre></apll> | |||
== Divisor Count Function == | == Divisor Count Function == | ||
Line 185: | Line 199: | ||
<p>The Rth prime function (<apll>¯2πR</apll>) gives the value of the Rth prime, as in</p> | <p>The Rth prime function (<apll>¯2πR</apll>) gives the value of the Rth prime, as in</p> | ||
<apll> | <apll><pre> | ||
¯2π100 | |||
541</pre></apll> | |||
<p>The Index function (<apll>⍳R</apll>) produces a vector of integers of length <apll>R</apll>, as in</p> | <p>The Index function (<apll>⍳R</apll>) produces a vector of integers of length <apll>R</apll>, as in</p> | ||
<apll> | <apll><pre> | ||
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ... 541< | ⍳¯2π100 | ||
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ... 541</pre></apll> | |||
<p>The Primality Test function (<apll>0πR</apll>) returns a <apll>1</apll> if the corresponding element in <apll>R</apll> is a prime, <apll>0</apll> otherwise, as in</p> | <p>The Primality Test function (<apll>0πR</apll>) returns a <apll>1</apll> if the corresponding element in <apll>R</apll> is a prime, <apll>0</apll> otherwise, as in</p> | ||
<apll> | <apll><pre> | ||
0 1 1 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 ... 1< | 0π⍳¯2π100 | ||
0 1 1 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 ... 1</pre></apll> | |||
<p>The Indices function (<apll>⍸R</apll>) converts the argument <apll>R</apll> to indices (equivalent to <apll>(,R)/⍳×/⍴R</apll>), as in</p> | <p>The Indices function (<apll>⍸R</apll>) converts the argument <apll>R</apll> to indices (equivalent to <apll>(,R)/⍳×/⍴R</apll>), as in</p> | ||
<apll> | <apll><pre> | ||
2 3 5 7 11 13 17 19 23 29 31 37 41 43 ... 541< | ⍸0π⍳¯2π100 | ||
2 3 5 7 11 13 17 19 23 29 31 37 41 43 ... 541</pre></apll> | |||
<p>Finally, those numbers may be added together using plus reduction (<apll>+/</apll>), as in</p> | <p>Finally, those numbers may be added together using plus reduction (<apll>+/</apll>), as in</p> | ||
<apll> | <apll><pre> | ||
+/⍸0π⍳¯2π100 | |||
24133</pre></apll> | |||
== Notes == | == Notes == | ||
<sup>1</sup> [https://en.wikipedia.org/wiki/Divisor_function Formula for sum of divisors] | <sup>1</sup> [https://en.wikipedia.org/wiki/Divisor_function Formula for sum of divisors] |
Latest revision as of 15:59, 17 July 2020
|
||||
R is a scalar or one-element vector consisting of a positive integer to be factored. | ||||
Z is an integer vector whose values are the prime factors of R. |
For example,
π120 2 2 2 3 5 ×/⎕←π⎕←¯1+2*62 4611686018427387903 3 715827883 2147483647 4611686018427387903 π¯1+2*61 2305843009213693951 ⍴π1 0 c←×/(a b)←1π?2⍴10*25x ⍝ Create two random 25-digit primes and their product a b c 213379889007584782100623 7822072437371562999056237 1669072948495632279507879309030439547039369735651 πc ⍝ Factor the 50-digit number 213379889007584782100623 7822072437371562999056237 ⎕T-(πc)⊢⊢⎕T ⍝ How many seconds of CPU time to factor a 50-digit number? 0.6204937084112316
|
||||||||||||||||||
L is an integer scalar whose meaning is as follows
|
||||||||||||||||||
R is an array consisting of positive integers to which one of the above functions is applied, element by element. | ||||||||||||||||||
Z is an integer array of the same shape as R. |
Rth Prime Function
The Rth prime function (¯2πR) returns the Rth prime where 2 is the first prime. This function is sensitive to the index origin.
For example, how many primes are less then or equal to 1000003?
¯2π1000003 15485927
Previous Prime Function
The previous prime function (¯1πR) returns the prime that immediately precedes R.
For example, what is the prime that immediately precedes 1000000?
¯1π1000000 999983
Primality Test
The primality test function (0πR) returns a 1 if R is a prime and 0 if not.
For example, is 1000003 a prime?
0π1000003 1
List the primes up to 100
⍸0π⍳100 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
Next Prime Function
The next prime function (1πR) returns the prime that immediately follows R.
For example, what is the next prime after 1000000?
1π1000000 1000003
Number Of Primes Function
The number of primes function (2πR) returns number of primes less than or equal to R.
For example, what is the 15485927th prime?
2π15485927 1000003
Divisor Count Function
The divisor count function (10πR) returns the number of divisors of a number. It is the same as ×/1+∪⍦πR where πR returns the prime factors of R and ∪⍦ counts the number of occurrences of unique elements (in this case, the exponent vector of the unique primes). A divisor then consists of the product of zero or more of the unique primes which is why ×/1+ counts them.
Divisor Sum Function
The divisor sum function (11πR) returns the sum of the divisors of a number. It is the same as ×/(¯1+(∪f)*1+∪⍦f)÷¯1+∪f←πR1. This function is used to recognize deficient, perfect, and abundant numbers.
Möbius Function
The Möbius function (12πR) returns information about the square free properties of R. If R is square free, the function returns 1 if R has an even number of prime factors, and ¯1 if it has an odd number of prime factors. If the argument is not square free, the function returns 0. It is used in the Möbius Inversion Formula to invert general arithmetic functions.
Totient Function
The totient function (13πR) (also called Euler's Totient Function) returns the number of positive integers less than or equal to R that are relatively prime to it (i.e., having no common positive factors other than 1).
Examples
Add together the first 100 primes:
The Rth prime function (¯2πR) gives the value of the Rth prime, as in
¯2π100 541
The Index function (⍳R) produces a vector of integers of length R, as in
⍳¯2π100 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ... 541
The Primality Test function (0πR) returns a 1 if the corresponding element in R is a prime, 0 otherwise, as in
0π⍳¯2π100 0 1 1 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 ... 1
The Indices function (⍸R) converts the argument R to indices (equivalent to (,R)/⍳×/⍴R), as in
⍸0π⍳¯2π100 2 3 5 7 11 13 17 19 23 29 31 37 41 43 ... 541
Finally, those numbers may be added together using plus reduction (+/), as in
+/⍸0π⍳¯2π100 24133