Computing only Prime Powers with NestList












2












$begingroup$


Is there a simple way to compute only prime powers of a function f with NestList? That is, I want to compute:



{f[x_0], f^2[x_0]=f[f[x_0]], f^3[x_0], f^5[x_0]...}


up to some specified prime power. Thanks so much!










share|improve this question









$endgroup$

















    2












    $begingroup$


    Is there a simple way to compute only prime powers of a function f with NestList? That is, I want to compute:



    {f[x_0], f^2[x_0]=f[f[x_0]], f^3[x_0], f^5[x_0]...}


    up to some specified prime power. Thanks so much!










    share|improve this question









    $endgroup$















      2












      2








      2





      $begingroup$


      Is there a simple way to compute only prime powers of a function f with NestList? That is, I want to compute:



      {f[x_0], f^2[x_0]=f[f[x_0]], f^3[x_0], f^5[x_0]...}


      up to some specified prime power. Thanks so much!










      share|improve this question









      $endgroup$




      Is there a simple way to compute only prime powers of a function f with NestList? That is, I want to compute:



      {f[x_0], f^2[x_0]=f[f[x_0]], f^3[x_0], f^5[x_0]...}


      up to some specified prime power. Thanks so much!







      recursion






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked 3 hours ago









      user413587user413587

      675




      675






















          6 Answers
          6






          active

          oldest

          votes


















          1












          $begingroup$

          Lets say you have f(x) and you want results up to 10



          n=10;    
          NestList[f,x,n][[#+1]]&/@Prime[Range@PrimePi@n]



          {f[f[x]], f[f[f[x]]], f[f[f[f[f[x]]]]], f[f[f[f[f[f[f[x]]]]]]]}







          share|improve this answer











          $endgroup$





















            1












            $begingroup$

            Here's a way using Compose:



            n = 10; ComposeList[ConstantArray[f, n], f[x]][[#]] & /@ Prime[Range@PrimePi@n]

            {f[f[x]], f[f[f[x]]], f[f[f[f[f[x]]]]], f[f[f[f[f[f[f[x]]]]]]]}





            share|improve this answer









            $endgroup$





















              1












              $begingroup$

              Here's a way to accumulate the nestings, i.e. use the previous nesting as the starting point for the next one:



              primeNest[f_, x_, n_] := FoldList[Nest[f, ##] &, f[f[x]], Differences[Prime[Range[n]]]]

              primeNest[f, x, 5]



              {f[f[x]], f[f[f[x]]], f[f[f[f[f[x]]]]], 
              f[f[f[f[f[f[f[x]]]]]]], f[f[f[f[f[f[f[f[f[f[f[x]]]]]]]]]]]}



              (Depth /@ primeNest[f, x, 20]) - 1



              {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71}






              share|improve this answer









              $endgroup$





















                0












                $begingroup$

                This may not be an elegant and smart way to do it but here is one way.



                  exp = NestList[g, x, 12];
                selector = PrimeQ[LeafCount /@ exp - 1];
                Pick[exp, selector] /. {g -> f, x -> x0}



                {f[f[x0]], f[f[f[x0]]], f[f[f[f[f[x0]]]]], f[f[f[f[f[f[f[x0]]]]]]],
                f[f[f[f[f[f[f[f[f[f[f[x0]]]]]]]]]]]}







                share|improve this answer











                $endgroup$





















                  0












                  $begingroup$

                  Well, maybe not as elegant as with NestList, but for the first five primes (n=5), for example, here is another way



                  n = 5;
                  ls = {};
                  For [k = 0, k < n, k++,
                  (
                  Q = f[x];
                  For [j = 1, j < Prime[k + 1], j++,
                  Q = Map[f, Q];
                  ];
                  ls = Join[ls, {Q}]
                  )
                  ]
                  Print[ls]


                  Here is the result:



                  {f[f[x]],f[f[f[x]]],f[f[f[f[f[x]]]]],f[f[f[f[f[f[f[x]]]]]]],f[f[f[f[f[f[f[f[f[f[f[x]]]]]]]]]]]}





                  share|improve this answer










                  New contributor




                  mjw is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                  Check out our Code of Conduct.






                  $endgroup$









                  • 1




                    $begingroup$
                    Why should I avoid the For loop in Mathematica?
                    $endgroup$
                    – corey979
                    2 hours ago










                  • $begingroup$
                    Yes, I've seen that! And I've got two loops! If n>10^4, great point! But for n=5 or n=10, do we care?, this code ran pretty quickly.
                    $endgroup$
                    – mjw
                    1 hour ago












                  • $begingroup$
                    Thank you for the tip, here it is with For replaced by Do: n = 5; ls = {}; Do [ ( Q = f[x]; Do [Q = Map[f, Q], {j, Range[Prime[k] - 1]}]; ls = Join[ls, {Q}] ), {k, Range[n]}] Print[ls]
                    $endgroup$
                    – mjw
                    1 hour ago





















                  0












                  $begingroup$

                  ClearAll[primesNest0]
                  primesNest0[f_, x_, n_] := Nest[f, x, #] & /@ Prime[Range@PrimePi@n]
                  primesNest0[f, x, 10]



                  {f[f[x]], f[f[f[x]]], f[f[f[f[f[x]]]]], f[f[f[f[f[f[f[x]]]]]]]}




                  Also



                  ClearAll[primesNest1]
                  primesNest1[f_, x_, n_] := Fold[#2@# &, x, ConstantArray[f, #]] & /@ Prime[Range@PrimePi@n]

                  primesNest1[f, x, 10]



                  {f[f[x]], f[f[f[x]]], f[f[f[f[f[x]]]]], f[f[f[f[f[f[f[x]]]]]]]}




                  and



                  ClearAll[primesNest2]
                  primesNest2[f_, x_, n_] := Compose[##&@@ConstantArray[f, #], x] & /@ Prime[Range@PrimePi@n]
                  primesNest2[f, x, 10]



                  {f[f[x]], f[f[f[x]]], f[f[f[f[f[x]]]]], f[f[f[f[f[f[f[x]]]]]]]}




                  and



                  ClearAll[primesNest3]
                  primesNest3[f_, x_, n_] := Composition[## & @@ ConstantArray[f, #]][x] & /@
                  Prime[Range@PrimePi@n]
                  primesNest3[f, x, 10]


                  . {f[f[x]], f[f[f[x]]], f[f[f[f[f[x]]]]], f[f[f[f[f[f[f[x]]]]]]]}






                  share|improve this answer











                  $endgroup$













                    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: "387"
                    };
                    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',
                    autoActivateHeartbeat: false,
                    convertImagesToLinks: false,
                    noModals: true,
                    showLowRepImageUploadWarning: true,
                    reputationToPostImages: null,
                    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
                    },
                    onDemand: true,
                    discardSelector: ".discard-answer"
                    ,immediatelyShowMarkdownHelp:true
                    });


                    }
                    });














                    draft saved

                    draft discarded


















                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f191716%2fcomputing-only-prime-powers-with-nestlist%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown

























                    6 Answers
                    6






                    active

                    oldest

                    votes








                    6 Answers
                    6






                    active

                    oldest

                    votes









                    active

                    oldest

                    votes






                    active

                    oldest

                    votes









                    1












                    $begingroup$

                    Lets say you have f(x) and you want results up to 10



                    n=10;    
                    NestList[f,x,n][[#+1]]&/@Prime[Range@PrimePi@n]



                    {f[f[x]], f[f[f[x]]], f[f[f[f[f[x]]]]], f[f[f[f[f[f[f[x]]]]]]]}







                    share|improve this answer











                    $endgroup$


















                      1












                      $begingroup$

                      Lets say you have f(x) and you want results up to 10



                      n=10;    
                      NestList[f,x,n][[#+1]]&/@Prime[Range@PrimePi@n]



                      {f[f[x]], f[f[f[x]]], f[f[f[f[f[x]]]]], f[f[f[f[f[f[f[x]]]]]]]}







                      share|improve this answer











                      $endgroup$
















                        1












                        1








                        1





                        $begingroup$

                        Lets say you have f(x) and you want results up to 10



                        n=10;    
                        NestList[f,x,n][[#+1]]&/@Prime[Range@PrimePi@n]



                        {f[f[x]], f[f[f[x]]], f[f[f[f[f[x]]]]], f[f[f[f[f[f[f[x]]]]]]]}







                        share|improve this answer











                        $endgroup$



                        Lets say you have f(x) and you want results up to 10



                        n=10;    
                        NestList[f,x,n][[#+1]]&/@Prime[Range@PrimePi@n]



                        {f[f[x]], f[f[f[x]]], f[f[f[f[f[x]]]]], f[f[f[f[f[f[f[x]]]]]]]}








                        share|improve this answer














                        share|improve this answer



                        share|improve this answer








                        edited 2 hours ago

























                        answered 2 hours ago









                        J42161217J42161217

                        3,767321




                        3,767321























                            1












                            $begingroup$

                            Here's a way using Compose:



                            n = 10; ComposeList[ConstantArray[f, n], f[x]][[#]] & /@ Prime[Range@PrimePi@n]

                            {f[f[x]], f[f[f[x]]], f[f[f[f[f[x]]]]], f[f[f[f[f[f[f[x]]]]]]]}





                            share|improve this answer









                            $endgroup$


















                              1












                              $begingroup$

                              Here's a way using Compose:



                              n = 10; ComposeList[ConstantArray[f, n], f[x]][[#]] & /@ Prime[Range@PrimePi@n]

                              {f[f[x]], f[f[f[x]]], f[f[f[f[f[x]]]]], f[f[f[f[f[f[f[x]]]]]]]}





                              share|improve this answer









                              $endgroup$
















                                1












                                1








                                1





                                $begingroup$

                                Here's a way using Compose:



                                n = 10; ComposeList[ConstantArray[f, n], f[x]][[#]] & /@ Prime[Range@PrimePi@n]

                                {f[f[x]], f[f[f[x]]], f[f[f[f[f[x]]]]], f[f[f[f[f[f[f[x]]]]]]]}





                                share|improve this answer









                                $endgroup$



                                Here's a way using Compose:



                                n = 10; ComposeList[ConstantArray[f, n], f[x]][[#]] & /@ Prime[Range@PrimePi@n]

                                {f[f[x]], f[f[f[x]]], f[f[f[f[f[x]]]]], f[f[f[f[f[f[f[x]]]]]]]}






                                share|improve this answer












                                share|improve this answer



                                share|improve this answer










                                answered 1 hour ago









                                bill sbill s

                                53.4k376152




                                53.4k376152























                                    1












                                    $begingroup$

                                    Here's a way to accumulate the nestings, i.e. use the previous nesting as the starting point for the next one:



                                    primeNest[f_, x_, n_] := FoldList[Nest[f, ##] &, f[f[x]], Differences[Prime[Range[n]]]]

                                    primeNest[f, x, 5]



                                    {f[f[x]], f[f[f[x]]], f[f[f[f[f[x]]]]], 
                                    f[f[f[f[f[f[f[x]]]]]]], f[f[f[f[f[f[f[f[f[f[f[x]]]]]]]]]]]}



                                    (Depth /@ primeNest[f, x, 20]) - 1



                                    {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71}






                                    share|improve this answer









                                    $endgroup$


















                                      1












                                      $begingroup$

                                      Here's a way to accumulate the nestings, i.e. use the previous nesting as the starting point for the next one:



                                      primeNest[f_, x_, n_] := FoldList[Nest[f, ##] &, f[f[x]], Differences[Prime[Range[n]]]]

                                      primeNest[f, x, 5]



                                      {f[f[x]], f[f[f[x]]], f[f[f[f[f[x]]]]], 
                                      f[f[f[f[f[f[f[x]]]]]]], f[f[f[f[f[f[f[f[f[f[f[x]]]]]]]]]]]}



                                      (Depth /@ primeNest[f, x, 20]) - 1



                                      {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71}






                                      share|improve this answer









                                      $endgroup$
















                                        1












                                        1








                                        1





                                        $begingroup$

                                        Here's a way to accumulate the nestings, i.e. use the previous nesting as the starting point for the next one:



                                        primeNest[f_, x_, n_] := FoldList[Nest[f, ##] &, f[f[x]], Differences[Prime[Range[n]]]]

                                        primeNest[f, x, 5]



                                        {f[f[x]], f[f[f[x]]], f[f[f[f[f[x]]]]], 
                                        f[f[f[f[f[f[f[x]]]]]]], f[f[f[f[f[f[f[f[f[f[f[x]]]]]]]]]]]}



                                        (Depth /@ primeNest[f, x, 20]) - 1



                                        {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71}






                                        share|improve this answer









                                        $endgroup$



                                        Here's a way to accumulate the nestings, i.e. use the previous nesting as the starting point for the next one:



                                        primeNest[f_, x_, n_] := FoldList[Nest[f, ##] &, f[f[x]], Differences[Prime[Range[n]]]]

                                        primeNest[f, x, 5]



                                        {f[f[x]], f[f[f[x]]], f[f[f[f[f[x]]]]], 
                                        f[f[f[f[f[f[f[x]]]]]]], f[f[f[f[f[f[f[f[f[f[f[x]]]]]]]]]]]}



                                        (Depth /@ primeNest[f, x, 20]) - 1



                                        {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71}







                                        share|improve this answer












                                        share|improve this answer



                                        share|improve this answer










                                        answered 34 mins ago









                                        Chip HurstChip Hurst

                                        21.3k15790




                                        21.3k15790























                                            0












                                            $begingroup$

                                            This may not be an elegant and smart way to do it but here is one way.



                                              exp = NestList[g, x, 12];
                                            selector = PrimeQ[LeafCount /@ exp - 1];
                                            Pick[exp, selector] /. {g -> f, x -> x0}



                                            {f[f[x0]], f[f[f[x0]]], f[f[f[f[f[x0]]]]], f[f[f[f[f[f[f[x0]]]]]]],
                                            f[f[f[f[f[f[f[f[f[f[f[x0]]]]]]]]]]]}







                                            share|improve this answer











                                            $endgroup$


















                                              0












                                              $begingroup$

                                              This may not be an elegant and smart way to do it but here is one way.



                                                exp = NestList[g, x, 12];
                                              selector = PrimeQ[LeafCount /@ exp - 1];
                                              Pick[exp, selector] /. {g -> f, x -> x0}



                                              {f[f[x0]], f[f[f[x0]]], f[f[f[f[f[x0]]]]], f[f[f[f[f[f[f[x0]]]]]]],
                                              f[f[f[f[f[f[f[f[f[f[f[x0]]]]]]]]]]]}







                                              share|improve this answer











                                              $endgroup$
















                                                0












                                                0








                                                0





                                                $begingroup$

                                                This may not be an elegant and smart way to do it but here is one way.



                                                  exp = NestList[g, x, 12];
                                                selector = PrimeQ[LeafCount /@ exp - 1];
                                                Pick[exp, selector] /. {g -> f, x -> x0}



                                                {f[f[x0]], f[f[f[x0]]], f[f[f[f[f[x0]]]]], f[f[f[f[f[f[f[x0]]]]]]],
                                                f[f[f[f[f[f[f[f[f[f[f[x0]]]]]]]]]]]}







                                                share|improve this answer











                                                $endgroup$



                                                This may not be an elegant and smart way to do it but here is one way.



                                                  exp = NestList[g, x, 12];
                                                selector = PrimeQ[LeafCount /@ exp - 1];
                                                Pick[exp, selector] /. {g -> f, x -> x0}



                                                {f[f[x0]], f[f[f[x0]]], f[f[f[f[f[x0]]]]], f[f[f[f[f[f[f[x0]]]]]]],
                                                f[f[f[f[f[f[f[f[f[f[f[x0]]]]]]]]]]]}








                                                share|improve this answer














                                                share|improve this answer



                                                share|improve this answer








                                                edited 2 hours ago

























                                                answered 2 hours ago









                                                Okkes DulgerciOkkes Dulgerci

                                                5,0021817




                                                5,0021817























                                                    0












                                                    $begingroup$

                                                    Well, maybe not as elegant as with NestList, but for the first five primes (n=5), for example, here is another way



                                                    n = 5;
                                                    ls = {};
                                                    For [k = 0, k < n, k++,
                                                    (
                                                    Q = f[x];
                                                    For [j = 1, j < Prime[k + 1], j++,
                                                    Q = Map[f, Q];
                                                    ];
                                                    ls = Join[ls, {Q}]
                                                    )
                                                    ]
                                                    Print[ls]


                                                    Here is the result:



                                                    {f[f[x]],f[f[f[x]]],f[f[f[f[f[x]]]]],f[f[f[f[f[f[f[x]]]]]]],f[f[f[f[f[f[f[f[f[f[f[x]]]]]]]]]]]}





                                                    share|improve this answer










                                                    New contributor




                                                    mjw is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                                    Check out our Code of Conduct.






                                                    $endgroup$









                                                    • 1




                                                      $begingroup$
                                                      Why should I avoid the For loop in Mathematica?
                                                      $endgroup$
                                                      – corey979
                                                      2 hours ago










                                                    • $begingroup$
                                                      Yes, I've seen that! And I've got two loops! If n>10^4, great point! But for n=5 or n=10, do we care?, this code ran pretty quickly.
                                                      $endgroup$
                                                      – mjw
                                                      1 hour ago












                                                    • $begingroup$
                                                      Thank you for the tip, here it is with For replaced by Do: n = 5; ls = {}; Do [ ( Q = f[x]; Do [Q = Map[f, Q], {j, Range[Prime[k] - 1]}]; ls = Join[ls, {Q}] ), {k, Range[n]}] Print[ls]
                                                      $endgroup$
                                                      – mjw
                                                      1 hour ago


















                                                    0












                                                    $begingroup$

                                                    Well, maybe not as elegant as with NestList, but for the first five primes (n=5), for example, here is another way



                                                    n = 5;
                                                    ls = {};
                                                    For [k = 0, k < n, k++,
                                                    (
                                                    Q = f[x];
                                                    For [j = 1, j < Prime[k + 1], j++,
                                                    Q = Map[f, Q];
                                                    ];
                                                    ls = Join[ls, {Q}]
                                                    )
                                                    ]
                                                    Print[ls]


                                                    Here is the result:



                                                    {f[f[x]],f[f[f[x]]],f[f[f[f[f[x]]]]],f[f[f[f[f[f[f[x]]]]]]],f[f[f[f[f[f[f[f[f[f[f[x]]]]]]]]]]]}





                                                    share|improve this answer










                                                    New contributor




                                                    mjw is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                                    Check out our Code of Conduct.






                                                    $endgroup$









                                                    • 1




                                                      $begingroup$
                                                      Why should I avoid the For loop in Mathematica?
                                                      $endgroup$
                                                      – corey979
                                                      2 hours ago










                                                    • $begingroup$
                                                      Yes, I've seen that! And I've got two loops! If n>10^4, great point! But for n=5 or n=10, do we care?, this code ran pretty quickly.
                                                      $endgroup$
                                                      – mjw
                                                      1 hour ago












                                                    • $begingroup$
                                                      Thank you for the tip, here it is with For replaced by Do: n = 5; ls = {}; Do [ ( Q = f[x]; Do [Q = Map[f, Q], {j, Range[Prime[k] - 1]}]; ls = Join[ls, {Q}] ), {k, Range[n]}] Print[ls]
                                                      $endgroup$
                                                      – mjw
                                                      1 hour ago
















                                                    0












                                                    0








                                                    0





                                                    $begingroup$

                                                    Well, maybe not as elegant as with NestList, but for the first five primes (n=5), for example, here is another way



                                                    n = 5;
                                                    ls = {};
                                                    For [k = 0, k < n, k++,
                                                    (
                                                    Q = f[x];
                                                    For [j = 1, j < Prime[k + 1], j++,
                                                    Q = Map[f, Q];
                                                    ];
                                                    ls = Join[ls, {Q}]
                                                    )
                                                    ]
                                                    Print[ls]


                                                    Here is the result:



                                                    {f[f[x]],f[f[f[x]]],f[f[f[f[f[x]]]]],f[f[f[f[f[f[f[x]]]]]]],f[f[f[f[f[f[f[f[f[f[f[x]]]]]]]]]]]}





                                                    share|improve this answer










                                                    New contributor




                                                    mjw is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                                    Check out our Code of Conduct.






                                                    $endgroup$



                                                    Well, maybe not as elegant as with NestList, but for the first five primes (n=5), for example, here is another way



                                                    n = 5;
                                                    ls = {};
                                                    For [k = 0, k < n, k++,
                                                    (
                                                    Q = f[x];
                                                    For [j = 1, j < Prime[k + 1], j++,
                                                    Q = Map[f, Q];
                                                    ];
                                                    ls = Join[ls, {Q}]
                                                    )
                                                    ]
                                                    Print[ls]


                                                    Here is the result:



                                                    {f[f[x]],f[f[f[x]]],f[f[f[f[f[x]]]]],f[f[f[f[f[f[f[x]]]]]]],f[f[f[f[f[f[f[f[f[f[f[x]]]]]]]]]]]}






                                                    share|improve this answer










                                                    New contributor




                                                    mjw is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                                    Check out our Code of Conduct.









                                                    share|improve this answer



                                                    share|improve this answer








                                                    edited 1 hour ago





















                                                    New contributor




                                                    mjw is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                                    Check out our Code of Conduct.









                                                    answered 2 hours ago









                                                    mjwmjw

                                                    1065




                                                    1065




                                                    New contributor




                                                    mjw is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                                    Check out our Code of Conduct.





                                                    New contributor





                                                    mjw is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                                    Check out our Code of Conduct.






                                                    mjw is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                                    Check out our Code of Conduct.








                                                    • 1




                                                      $begingroup$
                                                      Why should I avoid the For loop in Mathematica?
                                                      $endgroup$
                                                      – corey979
                                                      2 hours ago










                                                    • $begingroup$
                                                      Yes, I've seen that! And I've got two loops! If n>10^4, great point! But for n=5 or n=10, do we care?, this code ran pretty quickly.
                                                      $endgroup$
                                                      – mjw
                                                      1 hour ago












                                                    • $begingroup$
                                                      Thank you for the tip, here it is with For replaced by Do: n = 5; ls = {}; Do [ ( Q = f[x]; Do [Q = Map[f, Q], {j, Range[Prime[k] - 1]}]; ls = Join[ls, {Q}] ), {k, Range[n]}] Print[ls]
                                                      $endgroup$
                                                      – mjw
                                                      1 hour ago
















                                                    • 1




                                                      $begingroup$
                                                      Why should I avoid the For loop in Mathematica?
                                                      $endgroup$
                                                      – corey979
                                                      2 hours ago










                                                    • $begingroup$
                                                      Yes, I've seen that! And I've got two loops! If n>10^4, great point! But for n=5 or n=10, do we care?, this code ran pretty quickly.
                                                      $endgroup$
                                                      – mjw
                                                      1 hour ago












                                                    • $begingroup$
                                                      Thank you for the tip, here it is with For replaced by Do: n = 5; ls = {}; Do [ ( Q = f[x]; Do [Q = Map[f, Q], {j, Range[Prime[k] - 1]}]; ls = Join[ls, {Q}] ), {k, Range[n]}] Print[ls]
                                                      $endgroup$
                                                      – mjw
                                                      1 hour ago










                                                    1




                                                    1




                                                    $begingroup$
                                                    Why should I avoid the For loop in Mathematica?
                                                    $endgroup$
                                                    – corey979
                                                    2 hours ago




                                                    $begingroup$
                                                    Why should I avoid the For loop in Mathematica?
                                                    $endgroup$
                                                    – corey979
                                                    2 hours ago












                                                    $begingroup$
                                                    Yes, I've seen that! And I've got two loops! If n>10^4, great point! But for n=5 or n=10, do we care?, this code ran pretty quickly.
                                                    $endgroup$
                                                    – mjw
                                                    1 hour ago






                                                    $begingroup$
                                                    Yes, I've seen that! And I've got two loops! If n>10^4, great point! But for n=5 or n=10, do we care?, this code ran pretty quickly.
                                                    $endgroup$
                                                    – mjw
                                                    1 hour ago














                                                    $begingroup$
                                                    Thank you for the tip, here it is with For replaced by Do: n = 5; ls = {}; Do [ ( Q = f[x]; Do [Q = Map[f, Q], {j, Range[Prime[k] - 1]}]; ls = Join[ls, {Q}] ), {k, Range[n]}] Print[ls]
                                                    $endgroup$
                                                    – mjw
                                                    1 hour ago






                                                    $begingroup$
                                                    Thank you for the tip, here it is with For replaced by Do: n = 5; ls = {}; Do [ ( Q = f[x]; Do [Q = Map[f, Q], {j, Range[Prime[k] - 1]}]; ls = Join[ls, {Q}] ), {k, Range[n]}] Print[ls]
                                                    $endgroup$
                                                    – mjw
                                                    1 hour ago













                                                    0












                                                    $begingroup$

                                                    ClearAll[primesNest0]
                                                    primesNest0[f_, x_, n_] := Nest[f, x, #] & /@ Prime[Range@PrimePi@n]
                                                    primesNest0[f, x, 10]



                                                    {f[f[x]], f[f[f[x]]], f[f[f[f[f[x]]]]], f[f[f[f[f[f[f[x]]]]]]]}




                                                    Also



                                                    ClearAll[primesNest1]
                                                    primesNest1[f_, x_, n_] := Fold[#2@# &, x, ConstantArray[f, #]] & /@ Prime[Range@PrimePi@n]

                                                    primesNest1[f, x, 10]



                                                    {f[f[x]], f[f[f[x]]], f[f[f[f[f[x]]]]], f[f[f[f[f[f[f[x]]]]]]]}




                                                    and



                                                    ClearAll[primesNest2]
                                                    primesNest2[f_, x_, n_] := Compose[##&@@ConstantArray[f, #], x] & /@ Prime[Range@PrimePi@n]
                                                    primesNest2[f, x, 10]



                                                    {f[f[x]], f[f[f[x]]], f[f[f[f[f[x]]]]], f[f[f[f[f[f[f[x]]]]]]]}




                                                    and



                                                    ClearAll[primesNest3]
                                                    primesNest3[f_, x_, n_] := Composition[## & @@ ConstantArray[f, #]][x] & /@
                                                    Prime[Range@PrimePi@n]
                                                    primesNest3[f, x, 10]


                                                    . {f[f[x]], f[f[f[x]]], f[f[f[f[f[x]]]]], f[f[f[f[f[f[f[x]]]]]]]}






                                                    share|improve this answer











                                                    $endgroup$


















                                                      0












                                                      $begingroup$

                                                      ClearAll[primesNest0]
                                                      primesNest0[f_, x_, n_] := Nest[f, x, #] & /@ Prime[Range@PrimePi@n]
                                                      primesNest0[f, x, 10]



                                                      {f[f[x]], f[f[f[x]]], f[f[f[f[f[x]]]]], f[f[f[f[f[f[f[x]]]]]]]}




                                                      Also



                                                      ClearAll[primesNest1]
                                                      primesNest1[f_, x_, n_] := Fold[#2@# &, x, ConstantArray[f, #]] & /@ Prime[Range@PrimePi@n]

                                                      primesNest1[f, x, 10]



                                                      {f[f[x]], f[f[f[x]]], f[f[f[f[f[x]]]]], f[f[f[f[f[f[f[x]]]]]]]}




                                                      and



                                                      ClearAll[primesNest2]
                                                      primesNest2[f_, x_, n_] := Compose[##&@@ConstantArray[f, #], x] & /@ Prime[Range@PrimePi@n]
                                                      primesNest2[f, x, 10]



                                                      {f[f[x]], f[f[f[x]]], f[f[f[f[f[x]]]]], f[f[f[f[f[f[f[x]]]]]]]}




                                                      and



                                                      ClearAll[primesNest3]
                                                      primesNest3[f_, x_, n_] := Composition[## & @@ ConstantArray[f, #]][x] & /@
                                                      Prime[Range@PrimePi@n]
                                                      primesNest3[f, x, 10]


                                                      . {f[f[x]], f[f[f[x]]], f[f[f[f[f[x]]]]], f[f[f[f[f[f[f[x]]]]]]]}






                                                      share|improve this answer











                                                      $endgroup$
















                                                        0












                                                        0








                                                        0





                                                        $begingroup$

                                                        ClearAll[primesNest0]
                                                        primesNest0[f_, x_, n_] := Nest[f, x, #] & /@ Prime[Range@PrimePi@n]
                                                        primesNest0[f, x, 10]



                                                        {f[f[x]], f[f[f[x]]], f[f[f[f[f[x]]]]], f[f[f[f[f[f[f[x]]]]]]]}




                                                        Also



                                                        ClearAll[primesNest1]
                                                        primesNest1[f_, x_, n_] := Fold[#2@# &, x, ConstantArray[f, #]] & /@ Prime[Range@PrimePi@n]

                                                        primesNest1[f, x, 10]



                                                        {f[f[x]], f[f[f[x]]], f[f[f[f[f[x]]]]], f[f[f[f[f[f[f[x]]]]]]]}




                                                        and



                                                        ClearAll[primesNest2]
                                                        primesNest2[f_, x_, n_] := Compose[##&@@ConstantArray[f, #], x] & /@ Prime[Range@PrimePi@n]
                                                        primesNest2[f, x, 10]



                                                        {f[f[x]], f[f[f[x]]], f[f[f[f[f[x]]]]], f[f[f[f[f[f[f[x]]]]]]]}




                                                        and



                                                        ClearAll[primesNest3]
                                                        primesNest3[f_, x_, n_] := Composition[## & @@ ConstantArray[f, #]][x] & /@
                                                        Prime[Range@PrimePi@n]
                                                        primesNest3[f, x, 10]


                                                        . {f[f[x]], f[f[f[x]]], f[f[f[f[f[x]]]]], f[f[f[f[f[f[f[x]]]]]]]}






                                                        share|improve this answer











                                                        $endgroup$



                                                        ClearAll[primesNest0]
                                                        primesNest0[f_, x_, n_] := Nest[f, x, #] & /@ Prime[Range@PrimePi@n]
                                                        primesNest0[f, x, 10]



                                                        {f[f[x]], f[f[f[x]]], f[f[f[f[f[x]]]]], f[f[f[f[f[f[f[x]]]]]]]}




                                                        Also



                                                        ClearAll[primesNest1]
                                                        primesNest1[f_, x_, n_] := Fold[#2@# &, x, ConstantArray[f, #]] & /@ Prime[Range@PrimePi@n]

                                                        primesNest1[f, x, 10]



                                                        {f[f[x]], f[f[f[x]]], f[f[f[f[f[x]]]]], f[f[f[f[f[f[f[x]]]]]]]}




                                                        and



                                                        ClearAll[primesNest2]
                                                        primesNest2[f_, x_, n_] := Compose[##&@@ConstantArray[f, #], x] & /@ Prime[Range@PrimePi@n]
                                                        primesNest2[f, x, 10]



                                                        {f[f[x]], f[f[f[x]]], f[f[f[f[f[x]]]]], f[f[f[f[f[f[f[x]]]]]]]}




                                                        and



                                                        ClearAll[primesNest3]
                                                        primesNest3[f_, x_, n_] := Composition[## & @@ ConstantArray[f, #]][x] & /@
                                                        Prime[Range@PrimePi@n]
                                                        primesNest3[f, x, 10]


                                                        . {f[f[x]], f[f[f[x]]], f[f[f[f[f[x]]]]], f[f[f[f[f[f[f[x]]]]]]]}







                                                        share|improve this answer














                                                        share|improve this answer



                                                        share|improve this answer








                                                        edited 46 mins ago

























                                                        answered 1 hour ago









                                                        kglrkglr

                                                        184k10202419




                                                        184k10202419






























                                                            draft saved

                                                            draft discarded




















































                                                            Thanks for contributing an answer to Mathematica Stack Exchange!


                                                            • Please be sure to answer the question. Provide details and share your research!

                                                            But avoid



                                                            • Asking for help, clarification, or responding to other answers.

                                                            • Making statements based on opinion; back them up with references or personal experience.


                                                            Use MathJax to format equations. MathJax reference.


                                                            To learn more, see our tips on writing great answers.




                                                            draft saved


                                                            draft discarded














                                                            StackExchange.ready(
                                                            function () {
                                                            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f191716%2fcomputing-only-prime-powers-with-nestlist%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

                                                            宮崎県

                                                            濃尾地震

                                                            シテ島