Using the recursion theorem to implement the Sieve of Eratosthenes.











up vote
1
down vote

favorite












Update: I provided an answer here that shows how to define a mathematical function using the recursion theorem. This function can be reconfigured to compute the prime-counting function, $pi(x)$.



Only one question remains:




Question 1: Has the Sieve of Eratosthenes already been mathematically
revamped as a recursive function?




I did not find the word 'recursion' in the wikipedia article Generating primes, so this theory might be useful.



When running computers to get a list of all primes numbers using recursion, the 'state variables' should be retained for the next computer run.





The initial development was the construction of a Python program that maintained/updated state variables to generate, and keep generating, the list of prime numbers. I was using concepts found in the wiki article The Sieve of Eratosthenes.










share|cite|improve this question




















  • 1




    Why do you think, that the function in your (put-on-hold) question is recursive?
    – gammatester
    Nov 14 at 12:08












  • @gammatester The python program has state variables that change which each new input. The function $tau$ needs more than one variable to run.
    – CopyPasteIt
    Nov 14 at 12:13












  • You are aware that multiplication can be defined recursively, hence forbidding it makes no sense?
    – Hagen von Eitzen
    Nov 14 at 12:18










  • $tau(n)=Gamma(n,2,2)$ with $$Gamma(a,b,c)=begin{cases}1&a=b\0&c=a>b\Gamma(a,b+1,b+1)&c>a>b\Gamma(a,b,b+c)&text{otherwise} end{cases}$$
    – Hagen von Eitzen
    Nov 14 at 12:23















up vote
1
down vote

favorite












Update: I provided an answer here that shows how to define a mathematical function using the recursion theorem. This function can be reconfigured to compute the prime-counting function, $pi(x)$.



Only one question remains:




Question 1: Has the Sieve of Eratosthenes already been mathematically
revamped as a recursive function?




I did not find the word 'recursion' in the wikipedia article Generating primes, so this theory might be useful.



When running computers to get a list of all primes numbers using recursion, the 'state variables' should be retained for the next computer run.





The initial development was the construction of a Python program that maintained/updated state variables to generate, and keep generating, the list of prime numbers. I was using concepts found in the wiki article The Sieve of Eratosthenes.










share|cite|improve this question




















  • 1




    Why do you think, that the function in your (put-on-hold) question is recursive?
    – gammatester
    Nov 14 at 12:08












  • @gammatester The python program has state variables that change which each new input. The function $tau$ needs more than one variable to run.
    – CopyPasteIt
    Nov 14 at 12:13












  • You are aware that multiplication can be defined recursively, hence forbidding it makes no sense?
    – Hagen von Eitzen
    Nov 14 at 12:18










  • $tau(n)=Gamma(n,2,2)$ with $$Gamma(a,b,c)=begin{cases}1&a=b\0&c=a>b\Gamma(a,b+1,b+1)&c>a>b\Gamma(a,b,b+c)&text{otherwise} end{cases}$$
    – Hagen von Eitzen
    Nov 14 at 12:23













up vote
1
down vote

favorite









up vote
1
down vote

favorite











Update: I provided an answer here that shows how to define a mathematical function using the recursion theorem. This function can be reconfigured to compute the prime-counting function, $pi(x)$.



Only one question remains:




Question 1: Has the Sieve of Eratosthenes already been mathematically
revamped as a recursive function?




I did not find the word 'recursion' in the wikipedia article Generating primes, so this theory might be useful.



When running computers to get a list of all primes numbers using recursion, the 'state variables' should be retained for the next computer run.





The initial development was the construction of a Python program that maintained/updated state variables to generate, and keep generating, the list of prime numbers. I was using concepts found in the wiki article The Sieve of Eratosthenes.










share|cite|improve this question















Update: I provided an answer here that shows how to define a mathematical function using the recursion theorem. This function can be reconfigured to compute the prime-counting function, $pi(x)$.



Only one question remains:




Question 1: Has the Sieve of Eratosthenes already been mathematically
revamped as a recursive function?




I did not find the word 'recursion' in the wikipedia article Generating primes, so this theory might be useful.



When running computers to get a list of all primes numbers using recursion, the 'state variables' should be retained for the next computer run.





The initial development was the construction of a Python program that maintained/updated state variables to generate, and keep generating, the list of prime numbers. I was using concepts found in the wiki article The Sieve of Eratosthenes.







elementary-number-theory prime-numbers computer-science recursion






share|cite|improve this question















share|cite|improve this question













share|cite|improve this question




share|cite|improve this question








edited Nov 16 at 13:54

























asked Nov 14 at 12:03









CopyPasteIt

3,7371627




3,7371627








  • 1




    Why do you think, that the function in your (put-on-hold) question is recursive?
    – gammatester
    Nov 14 at 12:08












  • @gammatester The python program has state variables that change which each new input. The function $tau$ needs more than one variable to run.
    – CopyPasteIt
    Nov 14 at 12:13












  • You are aware that multiplication can be defined recursively, hence forbidding it makes no sense?
    – Hagen von Eitzen
    Nov 14 at 12:18










  • $tau(n)=Gamma(n,2,2)$ with $$Gamma(a,b,c)=begin{cases}1&a=b\0&c=a>b\Gamma(a,b+1,b+1)&c>a>b\Gamma(a,b,b+c)&text{otherwise} end{cases}$$
    – Hagen von Eitzen
    Nov 14 at 12:23














  • 1




    Why do you think, that the function in your (put-on-hold) question is recursive?
    – gammatester
    Nov 14 at 12:08












  • @gammatester The python program has state variables that change which each new input. The function $tau$ needs more than one variable to run.
    – CopyPasteIt
    Nov 14 at 12:13












  • You are aware that multiplication can be defined recursively, hence forbidding it makes no sense?
    – Hagen von Eitzen
    Nov 14 at 12:18










  • $tau(n)=Gamma(n,2,2)$ with $$Gamma(a,b,c)=begin{cases}1&a=b\0&c=a>b\Gamma(a,b+1,b+1)&c>a>b\Gamma(a,b,b+c)&text{otherwise} end{cases}$$
    – Hagen von Eitzen
    Nov 14 at 12:23








1




1




Why do you think, that the function in your (put-on-hold) question is recursive?
– gammatester
Nov 14 at 12:08






Why do you think, that the function in your (put-on-hold) question is recursive?
– gammatester
Nov 14 at 12:08














@gammatester The python program has state variables that change which each new input. The function $tau$ needs more than one variable to run.
– CopyPasteIt
Nov 14 at 12:13






@gammatester The python program has state variables that change which each new input. The function $tau$ needs more than one variable to run.
– CopyPasteIt
Nov 14 at 12:13














You are aware that multiplication can be defined recursively, hence forbidding it makes no sense?
– Hagen von Eitzen
Nov 14 at 12:18




You are aware that multiplication can be defined recursively, hence forbidding it makes no sense?
– Hagen von Eitzen
Nov 14 at 12:18












$tau(n)=Gamma(n,2,2)$ with $$Gamma(a,b,c)=begin{cases}1&a=b\0&c=a>b\Gamma(a,b+1,b+1)&c>a>b\Gamma(a,b,b+c)&text{otherwise} end{cases}$$
– Hagen von Eitzen
Nov 14 at 12:23




$tau(n)=Gamma(n,2,2)$ with $$Gamma(a,b,c)=begin{cases}1&a=b\0&c=a>b\Gamma(a,b+1,b+1)&c>a>b\Gamma(a,b,b+c)&text{otherwise} end{cases}$$
– Hagen von Eitzen
Nov 14 at 12:23










2 Answers
2






active

oldest

votes

















up vote
2
down vote













The Legendre formula,



https://en.wikipedia.org/wiki/Prime-counting_function#Algorithms_for_evaluating_π(x)
http://mathworld.wolfram.com/LegendresFormula.html



which based on the sieve, is recursive: $phi(x,a)=phi(x,a-1)-phi(frac{x}{p_a},a-1)$. With it you can find $pi(x)=phi(x,a)+a-1$ where $a=pi(sqrt[2]{x})$.



However, I am not sure it is recursive the way you want it to be recursive






share|cite|improve this answer





















  • Interestingly, the python update is looking more mathematical - using sets! The function $Gamma(n)$ is 'carrying' the set of all primes less than or equal to $n$ as the first coordinate of a changing relation in $mathbb N times mathbb N$. see math.stackexchange.com/questions/2997737/…
    – CopyPasteIt
    Nov 14 at 18:38


















up vote
1
down vote













Here $mathbb N = {2,3,4,dots}$.



Let $mathcal P$ denote the set of all finite subsets of $mathbb N times mathbb N$.



We define



$tag 1 gamma_n: mathcal P to mathcal P$
$quad quadquadquadquadquadquadquadquadquadquadquadquadquadquadquadquadquad;;; rho mapsto rho cup {(n,n+n)}$



We define



$tag 2 mu_n: mathcal P to mathcal P$
$quad quadquadquadquadquadquadquadquadquadquadquadquadquadquadquadquadquad;;; rho mapsto rho cup {(m,n+m) ; | ; (m,n) in rho }$



The mapping $Gamma: mathbb N times mathcal P to mathcal P$ is defined by



$$
Gamma(n,rho) = left{begin{array}{lr}
gamma_n(rho), & text{when } n notin text{Range}(rho)\
mu_n(rho), & text{otherwise}
end{array}right}
$$



Using the recursion theorem, we define



$tag 3 mathtt E: mathbb N cup {1} to mathcal P quad quad text{ by }$
$quadquadquadquadquadquadquadquadquadquadquadquadquadquadquadquad mathtt E(1) = emptyset$
$quadquad quadquadquadquadquadquadquadquadquadquadquadquadquadquad mathtt E(n+1) = Gamma(n+1,mathtt E(n))$



The function $mathtt E$ has the property that the projection of $mathtt E(n)$ onto the first coordinate is the set of all prime numbers less than or equal to $n$. So, letting $pr_1$ denote this projection, we define



$tag 4 pi': mathbb N to mathbb N$
$quad quadquadquadquadquadquadquadquadquadquadquadquadquadquadquadquadquad;;; n mapsto text{#} left[, pr_1(mathtt E(n)),right]$



so that $pi'(n)$ is the set of all primes less than or equal to $n$. It is immediate that this function is the restriction of the prime-counting function $pi$ to $mathbb N$.



Values of $mathtt E(n)$ for $n le 11:$



E(2) = {(2, 4)}
E(3) = {(2, 4), (3, 6)}
E(4) = {(2, 6), (2, 4), (3, 6)}
E(5) = {(2, 6), (5, 10), (2, 4), (3, 6)}
E(6) = {(2, 6), (5, 10), (3, 9), (3, 6), (2, 8), (2, 4)}
E(7) = {(7, 14), (2, 6), (5, 10), (3, 9), (3, 6), (2, 8), (2, 4)}
E(8) = {(7, 14), (2, 6), (5, 10), (3, 9), (3, 6), (2, 8), (2, 4), (2, 10)}
E(9) = {(7, 14), (2, 6), (5, 10), (3, 9), (3, 6), (3, 12), (2, 8), (2, 4), (2, 10)}
E(10) = {(7, 14), (2, 6), (5, 10), (3, 12), (2, 8), (2, 10), (3, 9), (5, 15), (2, 12), (3, 6), (2, 4)}
E(11) = {(7, 14), (2, 6), (5, 10), (3, 12), (2, 8), (11, 22), (2, 10), (3, 9), (5, 15), (2, 12), (3, 6), (2, 4)}


Note: These function values came from the Python program. Since mathematics is not concerned with 'efficiency' in any way, the program was 'dumbed down' so the outputs of $mathtt E$ can contain elements that are no longer used by the recursion algorithm; this made it easier to define the algorithm.






share|cite|improve this answer























    Your Answer





    StackExchange.ifUsing("editor", function () {
    return StackExchange.using("mathjaxEditing", function () {
    StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
    StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
    });
    });
    }, "mathjax-editing");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "69"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    noCode: true, onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














     

    draft saved


    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f2998187%2fusing-the-recursion-theorem-to-implement-the-sieve-of-eratosthenes%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    2 Answers
    2






    active

    oldest

    votes








    2 Answers
    2






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    2
    down vote













    The Legendre formula,



    https://en.wikipedia.org/wiki/Prime-counting_function#Algorithms_for_evaluating_π(x)
    http://mathworld.wolfram.com/LegendresFormula.html



    which based on the sieve, is recursive: $phi(x,a)=phi(x,a-1)-phi(frac{x}{p_a},a-1)$. With it you can find $pi(x)=phi(x,a)+a-1$ where $a=pi(sqrt[2]{x})$.



    However, I am not sure it is recursive the way you want it to be recursive






    share|cite|improve this answer





















    • Interestingly, the python update is looking more mathematical - using sets! The function $Gamma(n)$ is 'carrying' the set of all primes less than or equal to $n$ as the first coordinate of a changing relation in $mathbb N times mathbb N$. see math.stackexchange.com/questions/2997737/…
      – CopyPasteIt
      Nov 14 at 18:38















    up vote
    2
    down vote













    The Legendre formula,



    https://en.wikipedia.org/wiki/Prime-counting_function#Algorithms_for_evaluating_π(x)
    http://mathworld.wolfram.com/LegendresFormula.html



    which based on the sieve, is recursive: $phi(x,a)=phi(x,a-1)-phi(frac{x}{p_a},a-1)$. With it you can find $pi(x)=phi(x,a)+a-1$ where $a=pi(sqrt[2]{x})$.



    However, I am not sure it is recursive the way you want it to be recursive






    share|cite|improve this answer





















    • Interestingly, the python update is looking more mathematical - using sets! The function $Gamma(n)$ is 'carrying' the set of all primes less than or equal to $n$ as the first coordinate of a changing relation in $mathbb N times mathbb N$. see math.stackexchange.com/questions/2997737/…
      – CopyPasteIt
      Nov 14 at 18:38













    up vote
    2
    down vote










    up vote
    2
    down vote









    The Legendre formula,



    https://en.wikipedia.org/wiki/Prime-counting_function#Algorithms_for_evaluating_π(x)
    http://mathworld.wolfram.com/LegendresFormula.html



    which based on the sieve, is recursive: $phi(x,a)=phi(x,a-1)-phi(frac{x}{p_a},a-1)$. With it you can find $pi(x)=phi(x,a)+a-1$ where $a=pi(sqrt[2]{x})$.



    However, I am not sure it is recursive the way you want it to be recursive






    share|cite|improve this answer












    The Legendre formula,



    https://en.wikipedia.org/wiki/Prime-counting_function#Algorithms_for_evaluating_π(x)
    http://mathworld.wolfram.com/LegendresFormula.html



    which based on the sieve, is recursive: $phi(x,a)=phi(x,a-1)-phi(frac{x}{p_a},a-1)$. With it you can find $pi(x)=phi(x,a)+a-1$ where $a=pi(sqrt[2]{x})$.



    However, I am not sure it is recursive the way you want it to be recursive







    share|cite|improve this answer












    share|cite|improve this answer



    share|cite|improve this answer










    answered Nov 14 at 18:17









    Collag3n

    659211




    659211












    • Interestingly, the python update is looking more mathematical - using sets! The function $Gamma(n)$ is 'carrying' the set of all primes less than or equal to $n$ as the first coordinate of a changing relation in $mathbb N times mathbb N$. see math.stackexchange.com/questions/2997737/…
      – CopyPasteIt
      Nov 14 at 18:38


















    • Interestingly, the python update is looking more mathematical - using sets! The function $Gamma(n)$ is 'carrying' the set of all primes less than or equal to $n$ as the first coordinate of a changing relation in $mathbb N times mathbb N$. see math.stackexchange.com/questions/2997737/…
      – CopyPasteIt
      Nov 14 at 18:38
















    Interestingly, the python update is looking more mathematical - using sets! The function $Gamma(n)$ is 'carrying' the set of all primes less than or equal to $n$ as the first coordinate of a changing relation in $mathbb N times mathbb N$. see math.stackexchange.com/questions/2997737/…
    – CopyPasteIt
    Nov 14 at 18:38




    Interestingly, the python update is looking more mathematical - using sets! The function $Gamma(n)$ is 'carrying' the set of all primes less than or equal to $n$ as the first coordinate of a changing relation in $mathbb N times mathbb N$. see math.stackexchange.com/questions/2997737/…
    – CopyPasteIt
    Nov 14 at 18:38










    up vote
    1
    down vote













    Here $mathbb N = {2,3,4,dots}$.



    Let $mathcal P$ denote the set of all finite subsets of $mathbb N times mathbb N$.



    We define



    $tag 1 gamma_n: mathcal P to mathcal P$
    $quad quadquadquadquadquadquadquadquadquadquadquadquadquadquadquadquadquad;;; rho mapsto rho cup {(n,n+n)}$



    We define



    $tag 2 mu_n: mathcal P to mathcal P$
    $quad quadquadquadquadquadquadquadquadquadquadquadquadquadquadquadquadquad;;; rho mapsto rho cup {(m,n+m) ; | ; (m,n) in rho }$



    The mapping $Gamma: mathbb N times mathcal P to mathcal P$ is defined by



    $$
    Gamma(n,rho) = left{begin{array}{lr}
    gamma_n(rho), & text{when } n notin text{Range}(rho)\
    mu_n(rho), & text{otherwise}
    end{array}right}
    $$



    Using the recursion theorem, we define



    $tag 3 mathtt E: mathbb N cup {1} to mathcal P quad quad text{ by }$
    $quadquadquadquadquadquadquadquadquadquadquadquadquadquadquadquad mathtt E(1) = emptyset$
    $quadquad quadquadquadquadquadquadquadquadquadquadquadquadquadquad mathtt E(n+1) = Gamma(n+1,mathtt E(n))$



    The function $mathtt E$ has the property that the projection of $mathtt E(n)$ onto the first coordinate is the set of all prime numbers less than or equal to $n$. So, letting $pr_1$ denote this projection, we define



    $tag 4 pi': mathbb N to mathbb N$
    $quad quadquadquadquadquadquadquadquadquadquadquadquadquadquadquadquadquad;;; n mapsto text{#} left[, pr_1(mathtt E(n)),right]$



    so that $pi'(n)$ is the set of all primes less than or equal to $n$. It is immediate that this function is the restriction of the prime-counting function $pi$ to $mathbb N$.



    Values of $mathtt E(n)$ for $n le 11:$



    E(2) = {(2, 4)}
    E(3) = {(2, 4), (3, 6)}
    E(4) = {(2, 6), (2, 4), (3, 6)}
    E(5) = {(2, 6), (5, 10), (2, 4), (3, 6)}
    E(6) = {(2, 6), (5, 10), (3, 9), (3, 6), (2, 8), (2, 4)}
    E(7) = {(7, 14), (2, 6), (5, 10), (3, 9), (3, 6), (2, 8), (2, 4)}
    E(8) = {(7, 14), (2, 6), (5, 10), (3, 9), (3, 6), (2, 8), (2, 4), (2, 10)}
    E(9) = {(7, 14), (2, 6), (5, 10), (3, 9), (3, 6), (3, 12), (2, 8), (2, 4), (2, 10)}
    E(10) = {(7, 14), (2, 6), (5, 10), (3, 12), (2, 8), (2, 10), (3, 9), (5, 15), (2, 12), (3, 6), (2, 4)}
    E(11) = {(7, 14), (2, 6), (5, 10), (3, 12), (2, 8), (11, 22), (2, 10), (3, 9), (5, 15), (2, 12), (3, 6), (2, 4)}


    Note: These function values came from the Python program. Since mathematics is not concerned with 'efficiency' in any way, the program was 'dumbed down' so the outputs of $mathtt E$ can contain elements that are no longer used by the recursion algorithm; this made it easier to define the algorithm.






    share|cite|improve this answer



























      up vote
      1
      down vote













      Here $mathbb N = {2,3,4,dots}$.



      Let $mathcal P$ denote the set of all finite subsets of $mathbb N times mathbb N$.



      We define



      $tag 1 gamma_n: mathcal P to mathcal P$
      $quad quadquadquadquadquadquadquadquadquadquadquadquadquadquadquadquadquad;;; rho mapsto rho cup {(n,n+n)}$



      We define



      $tag 2 mu_n: mathcal P to mathcal P$
      $quad quadquadquadquadquadquadquadquadquadquadquadquadquadquadquadquadquad;;; rho mapsto rho cup {(m,n+m) ; | ; (m,n) in rho }$



      The mapping $Gamma: mathbb N times mathcal P to mathcal P$ is defined by



      $$
      Gamma(n,rho) = left{begin{array}{lr}
      gamma_n(rho), & text{when } n notin text{Range}(rho)\
      mu_n(rho), & text{otherwise}
      end{array}right}
      $$



      Using the recursion theorem, we define



      $tag 3 mathtt E: mathbb N cup {1} to mathcal P quad quad text{ by }$
      $quadquadquadquadquadquadquadquadquadquadquadquadquadquadquadquad mathtt E(1) = emptyset$
      $quadquad quadquadquadquadquadquadquadquadquadquadquadquadquadquad mathtt E(n+1) = Gamma(n+1,mathtt E(n))$



      The function $mathtt E$ has the property that the projection of $mathtt E(n)$ onto the first coordinate is the set of all prime numbers less than or equal to $n$. So, letting $pr_1$ denote this projection, we define



      $tag 4 pi': mathbb N to mathbb N$
      $quad quadquadquadquadquadquadquadquadquadquadquadquadquadquadquadquadquad;;; n mapsto text{#} left[, pr_1(mathtt E(n)),right]$



      so that $pi'(n)$ is the set of all primes less than or equal to $n$. It is immediate that this function is the restriction of the prime-counting function $pi$ to $mathbb N$.



      Values of $mathtt E(n)$ for $n le 11:$



      E(2) = {(2, 4)}
      E(3) = {(2, 4), (3, 6)}
      E(4) = {(2, 6), (2, 4), (3, 6)}
      E(5) = {(2, 6), (5, 10), (2, 4), (3, 6)}
      E(6) = {(2, 6), (5, 10), (3, 9), (3, 6), (2, 8), (2, 4)}
      E(7) = {(7, 14), (2, 6), (5, 10), (3, 9), (3, 6), (2, 8), (2, 4)}
      E(8) = {(7, 14), (2, 6), (5, 10), (3, 9), (3, 6), (2, 8), (2, 4), (2, 10)}
      E(9) = {(7, 14), (2, 6), (5, 10), (3, 9), (3, 6), (3, 12), (2, 8), (2, 4), (2, 10)}
      E(10) = {(7, 14), (2, 6), (5, 10), (3, 12), (2, 8), (2, 10), (3, 9), (5, 15), (2, 12), (3, 6), (2, 4)}
      E(11) = {(7, 14), (2, 6), (5, 10), (3, 12), (2, 8), (11, 22), (2, 10), (3, 9), (5, 15), (2, 12), (3, 6), (2, 4)}


      Note: These function values came from the Python program. Since mathematics is not concerned with 'efficiency' in any way, the program was 'dumbed down' so the outputs of $mathtt E$ can contain elements that are no longer used by the recursion algorithm; this made it easier to define the algorithm.






      share|cite|improve this answer

























        up vote
        1
        down vote










        up vote
        1
        down vote









        Here $mathbb N = {2,3,4,dots}$.



        Let $mathcal P$ denote the set of all finite subsets of $mathbb N times mathbb N$.



        We define



        $tag 1 gamma_n: mathcal P to mathcal P$
        $quad quadquadquadquadquadquadquadquadquadquadquadquadquadquadquadquadquad;;; rho mapsto rho cup {(n,n+n)}$



        We define



        $tag 2 mu_n: mathcal P to mathcal P$
        $quad quadquadquadquadquadquadquadquadquadquadquadquadquadquadquadquadquad;;; rho mapsto rho cup {(m,n+m) ; | ; (m,n) in rho }$



        The mapping $Gamma: mathbb N times mathcal P to mathcal P$ is defined by



        $$
        Gamma(n,rho) = left{begin{array}{lr}
        gamma_n(rho), & text{when } n notin text{Range}(rho)\
        mu_n(rho), & text{otherwise}
        end{array}right}
        $$



        Using the recursion theorem, we define



        $tag 3 mathtt E: mathbb N cup {1} to mathcal P quad quad text{ by }$
        $quadquadquadquadquadquadquadquadquadquadquadquadquadquadquadquad mathtt E(1) = emptyset$
        $quadquad quadquadquadquadquadquadquadquadquadquadquadquadquadquad mathtt E(n+1) = Gamma(n+1,mathtt E(n))$



        The function $mathtt E$ has the property that the projection of $mathtt E(n)$ onto the first coordinate is the set of all prime numbers less than or equal to $n$. So, letting $pr_1$ denote this projection, we define



        $tag 4 pi': mathbb N to mathbb N$
        $quad quadquadquadquadquadquadquadquadquadquadquadquadquadquadquadquadquad;;; n mapsto text{#} left[, pr_1(mathtt E(n)),right]$



        so that $pi'(n)$ is the set of all primes less than or equal to $n$. It is immediate that this function is the restriction of the prime-counting function $pi$ to $mathbb N$.



        Values of $mathtt E(n)$ for $n le 11:$



        E(2) = {(2, 4)}
        E(3) = {(2, 4), (3, 6)}
        E(4) = {(2, 6), (2, 4), (3, 6)}
        E(5) = {(2, 6), (5, 10), (2, 4), (3, 6)}
        E(6) = {(2, 6), (5, 10), (3, 9), (3, 6), (2, 8), (2, 4)}
        E(7) = {(7, 14), (2, 6), (5, 10), (3, 9), (3, 6), (2, 8), (2, 4)}
        E(8) = {(7, 14), (2, 6), (5, 10), (3, 9), (3, 6), (2, 8), (2, 4), (2, 10)}
        E(9) = {(7, 14), (2, 6), (5, 10), (3, 9), (3, 6), (3, 12), (2, 8), (2, 4), (2, 10)}
        E(10) = {(7, 14), (2, 6), (5, 10), (3, 12), (2, 8), (2, 10), (3, 9), (5, 15), (2, 12), (3, 6), (2, 4)}
        E(11) = {(7, 14), (2, 6), (5, 10), (3, 12), (2, 8), (11, 22), (2, 10), (3, 9), (5, 15), (2, 12), (3, 6), (2, 4)}


        Note: These function values came from the Python program. Since mathematics is not concerned with 'efficiency' in any way, the program was 'dumbed down' so the outputs of $mathtt E$ can contain elements that are no longer used by the recursion algorithm; this made it easier to define the algorithm.






        share|cite|improve this answer














        Here $mathbb N = {2,3,4,dots}$.



        Let $mathcal P$ denote the set of all finite subsets of $mathbb N times mathbb N$.



        We define



        $tag 1 gamma_n: mathcal P to mathcal P$
        $quad quadquadquadquadquadquadquadquadquadquadquadquadquadquadquadquadquad;;; rho mapsto rho cup {(n,n+n)}$



        We define



        $tag 2 mu_n: mathcal P to mathcal P$
        $quad quadquadquadquadquadquadquadquadquadquadquadquadquadquadquadquadquad;;; rho mapsto rho cup {(m,n+m) ; | ; (m,n) in rho }$



        The mapping $Gamma: mathbb N times mathcal P to mathcal P$ is defined by



        $$
        Gamma(n,rho) = left{begin{array}{lr}
        gamma_n(rho), & text{when } n notin text{Range}(rho)\
        mu_n(rho), & text{otherwise}
        end{array}right}
        $$



        Using the recursion theorem, we define



        $tag 3 mathtt E: mathbb N cup {1} to mathcal P quad quad text{ by }$
        $quadquadquadquadquadquadquadquadquadquadquadquadquadquadquadquad mathtt E(1) = emptyset$
        $quadquad quadquadquadquadquadquadquadquadquadquadquadquadquadquad mathtt E(n+1) = Gamma(n+1,mathtt E(n))$



        The function $mathtt E$ has the property that the projection of $mathtt E(n)$ onto the first coordinate is the set of all prime numbers less than or equal to $n$. So, letting $pr_1$ denote this projection, we define



        $tag 4 pi': mathbb N to mathbb N$
        $quad quadquadquadquadquadquadquadquadquadquadquadquadquadquadquadquadquad;;; n mapsto text{#} left[, pr_1(mathtt E(n)),right]$



        so that $pi'(n)$ is the set of all primes less than or equal to $n$. It is immediate that this function is the restriction of the prime-counting function $pi$ to $mathbb N$.



        Values of $mathtt E(n)$ for $n le 11:$



        E(2) = {(2, 4)}
        E(3) = {(2, 4), (3, 6)}
        E(4) = {(2, 6), (2, 4), (3, 6)}
        E(5) = {(2, 6), (5, 10), (2, 4), (3, 6)}
        E(6) = {(2, 6), (5, 10), (3, 9), (3, 6), (2, 8), (2, 4)}
        E(7) = {(7, 14), (2, 6), (5, 10), (3, 9), (3, 6), (2, 8), (2, 4)}
        E(8) = {(7, 14), (2, 6), (5, 10), (3, 9), (3, 6), (2, 8), (2, 4), (2, 10)}
        E(9) = {(7, 14), (2, 6), (5, 10), (3, 9), (3, 6), (3, 12), (2, 8), (2, 4), (2, 10)}
        E(10) = {(7, 14), (2, 6), (5, 10), (3, 12), (2, 8), (2, 10), (3, 9), (5, 15), (2, 12), (3, 6), (2, 4)}
        E(11) = {(7, 14), (2, 6), (5, 10), (3, 12), (2, 8), (11, 22), (2, 10), (3, 9), (5, 15), (2, 12), (3, 6), (2, 4)}


        Note: These function values came from the Python program. Since mathematics is not concerned with 'efficiency' in any way, the program was 'dumbed down' so the outputs of $mathtt E$ can contain elements that are no longer used by the recursion algorithm; this made it easier to define the algorithm.







        share|cite|improve this answer














        share|cite|improve this answer



        share|cite|improve this answer








        edited Nov 16 at 14:07

























        answered Nov 15 at 0:41









        CopyPasteIt

        3,7371627




        3,7371627






























             

            draft saved


            draft discarded



















































             


            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f2998187%2fusing-the-recursion-theorem-to-implement-the-sieve-of-eratosthenes%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            How to send String Array data to Server using php in android

            Title Spacing in Bjornstrup Chapter, Removing Chapter Number From Contents

            Is anime1.com a legal site for watching anime?