Am I not good enough for you?












3












$begingroup$


Background:



The current Perfect Numbers challenge is rather flawed and complicated, since it asks you to output in a complex format involving the factors of the number. This is a purely decision-problem repost of the challenge.



Challenge



Given a positive integer through any standard input format, output whether it is not perfect.



A perfect number is a number that is equal to the sum of all its proper divisors (its positive divisors less than itself). For example, $6$ is a perfect number, since its divisors are $1,2,3$, which sum up to $6$, while $12$ is not a perfect number since its divisors ( $1,2,3,4,6$ ) sum up to $16$, not $12$.



Test Cases:



Imperfect:
1,12,13,18,20,1000,33550335

Perfect:
6,28,496,8128,33550336,8589869056


Rules




  • Your program doesn't have to complete the larger test cases, if there's memory or time constraints, but it should be theoretically able to if it were given more memory/time.

  • Output can be two distinct and consistent values through any allowed output format. If it isn't immediately obvious what represents Truthy/Falsey, please make sure to specify in your answer.


    • This means your values don't have to be literally Truthy/Falsey. Your Truthy output may evaluate to false in your language and vice-versa.












share|improve this question











$endgroup$












  • $begingroup$
    Wait, so truthy is for values that aren't perfect, and falsey is for values that are?
    $endgroup$
    – Esolanging Fruit
    58 mins ago










  • $begingroup$
    @EsolangingFruit Yes, though the actual output values don't really matter, so you can output true for perfect numbers if you wish
    $endgroup$
    – Jo King
    57 mins ago










  • $begingroup$
    Fair enough, but wording the challenge as "output whether it is not perfect" makes the test cases slightly confusing if you interpret "truthy" as meaning "values corresponding to true".
    $endgroup$
    – Esolanging Fruit
    55 mins ago










  • $begingroup$
    @EsolangingFruit Good point. I've renamed the test cases to Imperfect/Perfect to make it clearer
    $endgroup$
    – Jo King
    54 mins ago
















3












$begingroup$


Background:



The current Perfect Numbers challenge is rather flawed and complicated, since it asks you to output in a complex format involving the factors of the number. This is a purely decision-problem repost of the challenge.



Challenge



Given a positive integer through any standard input format, output whether it is not perfect.



A perfect number is a number that is equal to the sum of all its proper divisors (its positive divisors less than itself). For example, $6$ is a perfect number, since its divisors are $1,2,3$, which sum up to $6$, while $12$ is not a perfect number since its divisors ( $1,2,3,4,6$ ) sum up to $16$, not $12$.



Test Cases:



Imperfect:
1,12,13,18,20,1000,33550335

Perfect:
6,28,496,8128,33550336,8589869056


Rules




  • Your program doesn't have to complete the larger test cases, if there's memory or time constraints, but it should be theoretically able to if it were given more memory/time.

  • Output can be two distinct and consistent values through any allowed output format. If it isn't immediately obvious what represents Truthy/Falsey, please make sure to specify in your answer.


    • This means your values don't have to be literally Truthy/Falsey. Your Truthy output may evaluate to false in your language and vice-versa.












share|improve this question











$endgroup$












  • $begingroup$
    Wait, so truthy is for values that aren't perfect, and falsey is for values that are?
    $endgroup$
    – Esolanging Fruit
    58 mins ago










  • $begingroup$
    @EsolangingFruit Yes, though the actual output values don't really matter, so you can output true for perfect numbers if you wish
    $endgroup$
    – Jo King
    57 mins ago










  • $begingroup$
    Fair enough, but wording the challenge as "output whether it is not perfect" makes the test cases slightly confusing if you interpret "truthy" as meaning "values corresponding to true".
    $endgroup$
    – Esolanging Fruit
    55 mins ago










  • $begingroup$
    @EsolangingFruit Good point. I've renamed the test cases to Imperfect/Perfect to make it clearer
    $endgroup$
    – Jo King
    54 mins ago














3












3








3





$begingroup$


Background:



The current Perfect Numbers challenge is rather flawed and complicated, since it asks you to output in a complex format involving the factors of the number. This is a purely decision-problem repost of the challenge.



Challenge



Given a positive integer through any standard input format, output whether it is not perfect.



A perfect number is a number that is equal to the sum of all its proper divisors (its positive divisors less than itself). For example, $6$ is a perfect number, since its divisors are $1,2,3$, which sum up to $6$, while $12$ is not a perfect number since its divisors ( $1,2,3,4,6$ ) sum up to $16$, not $12$.



Test Cases:



Imperfect:
1,12,13,18,20,1000,33550335

Perfect:
6,28,496,8128,33550336,8589869056


Rules




  • Your program doesn't have to complete the larger test cases, if there's memory or time constraints, but it should be theoretically able to if it were given more memory/time.

  • Output can be two distinct and consistent values through any allowed output format. If it isn't immediately obvious what represents Truthy/Falsey, please make sure to specify in your answer.


    • This means your values don't have to be literally Truthy/Falsey. Your Truthy output may evaluate to false in your language and vice-versa.












share|improve this question











$endgroup$




Background:



The current Perfect Numbers challenge is rather flawed and complicated, since it asks you to output in a complex format involving the factors of the number. This is a purely decision-problem repost of the challenge.



Challenge



Given a positive integer through any standard input format, output whether it is not perfect.



A perfect number is a number that is equal to the sum of all its proper divisors (its positive divisors less than itself). For example, $6$ is a perfect number, since its divisors are $1,2,3$, which sum up to $6$, while $12$ is not a perfect number since its divisors ( $1,2,3,4,6$ ) sum up to $16$, not $12$.



Test Cases:



Imperfect:
1,12,13,18,20,1000,33550335

Perfect:
6,28,496,8128,33550336,8589869056


Rules




  • Your program doesn't have to complete the larger test cases, if there's memory or time constraints, but it should be theoretically able to if it were given more memory/time.

  • Output can be two distinct and consistent values through any allowed output format. If it isn't immediately obvious what represents Truthy/Falsey, please make sure to specify in your answer.


    • This means your values don't have to be literally Truthy/Falsey. Your Truthy output may evaluate to false in your language and vice-versa.









code-golf number decision-problem number-theory factoring






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 54 mins ago







Jo King

















asked 1 hour ago









Jo KingJo King

24.6k357126




24.6k357126












  • $begingroup$
    Wait, so truthy is for values that aren't perfect, and falsey is for values that are?
    $endgroup$
    – Esolanging Fruit
    58 mins ago










  • $begingroup$
    @EsolangingFruit Yes, though the actual output values don't really matter, so you can output true for perfect numbers if you wish
    $endgroup$
    – Jo King
    57 mins ago










  • $begingroup$
    Fair enough, but wording the challenge as "output whether it is not perfect" makes the test cases slightly confusing if you interpret "truthy" as meaning "values corresponding to true".
    $endgroup$
    – Esolanging Fruit
    55 mins ago










  • $begingroup$
    @EsolangingFruit Good point. I've renamed the test cases to Imperfect/Perfect to make it clearer
    $endgroup$
    – Jo King
    54 mins ago


















  • $begingroup$
    Wait, so truthy is for values that aren't perfect, and falsey is for values that are?
    $endgroup$
    – Esolanging Fruit
    58 mins ago










  • $begingroup$
    @EsolangingFruit Yes, though the actual output values don't really matter, so you can output true for perfect numbers if you wish
    $endgroup$
    – Jo King
    57 mins ago










  • $begingroup$
    Fair enough, but wording the challenge as "output whether it is not perfect" makes the test cases slightly confusing if you interpret "truthy" as meaning "values corresponding to true".
    $endgroup$
    – Esolanging Fruit
    55 mins ago










  • $begingroup$
    @EsolangingFruit Good point. I've renamed the test cases to Imperfect/Perfect to make it clearer
    $endgroup$
    – Jo King
    54 mins ago
















$begingroup$
Wait, so truthy is for values that aren't perfect, and falsey is for values that are?
$endgroup$
– Esolanging Fruit
58 mins ago




$begingroup$
Wait, so truthy is for values that aren't perfect, and falsey is for values that are?
$endgroup$
– Esolanging Fruit
58 mins ago












$begingroup$
@EsolangingFruit Yes, though the actual output values don't really matter, so you can output true for perfect numbers if you wish
$endgroup$
– Jo King
57 mins ago




$begingroup$
@EsolangingFruit Yes, though the actual output values don't really matter, so you can output true for perfect numbers if you wish
$endgroup$
– Jo King
57 mins ago












$begingroup$
Fair enough, but wording the challenge as "output whether it is not perfect" makes the test cases slightly confusing if you interpret "truthy" as meaning "values corresponding to true".
$endgroup$
– Esolanging Fruit
55 mins ago




$begingroup$
Fair enough, but wording the challenge as "output whether it is not perfect" makes the test cases slightly confusing if you interpret "truthy" as meaning "values corresponding to true".
$endgroup$
– Esolanging Fruit
55 mins ago












$begingroup$
@EsolangingFruit Good point. I've renamed the test cases to Imperfect/Perfect to make it clearer
$endgroup$
– Jo King
54 mins ago




$begingroup$
@EsolangingFruit Good point. I've renamed the test cases to Imperfect/Perfect to make it clearer
$endgroup$
– Jo King
54 mins ago










5 Answers
5






active

oldest

votes


















3












$begingroup$


Japt -!, 4 bytes



¥â¬x


For some reason ¦ doesnt work on tio so I need to use the -! flag and ¥ instead



Try it online!






share|improve this answer











$endgroup$





















    2












    $begingroup$


    R, 33 bytes





    !2*(n=scan())-sum(which(!n%%1:n))


    Try it online!



    Returns TRUE for perfect numbers ans FALSE for imperfect ones.






    share|improve this answer









    $endgroup$













    • $begingroup$
      What do the 2 !s in a row get you?
      $endgroup$
      – CT Hall
      39 mins ago










    • $begingroup$
      @CTHall I misread the spec; they originally mapped 0 (perfect) to FALSE and nonzero to TRUE but I removed one of them to reverse the mapping. It's a useful golfing trick to cast from numeric to logical, often in conjunction with which or [.
      $endgroup$
      – Giuseppe
      18 mins ago





















    1












    $begingroup$


    CJam, 17 bytes



    ri_,(;{1$%!},:+=


    Try it online!






    share|improve this answer









    $endgroup$





















      1












      $begingroup$

      Javascript, 62



      n=>n==[...Array(n).keys()].filter(a=>n%a<1).reduce((a,b)=>a+b)


      Explanation (although it's pretty simple)



      n=> //return function that takes n
      n== //and returns if n is equal to
      [...Array(n).keys()] //an array [0..(n-1)]...
      .filter(a=>n%a<1) //where all of the elements that are not divisors of n are taken out...
      .reduce((a,b)=>a+b) //summed up


      Thanks to Jo King for the improvement!






      share|improve this answer











      $endgroup$













      • $begingroup$
        thanks! Added that in
        $endgroup$
        – zevee
        52 mins ago



















      0












      $begingroup$


      C# (Visual C# Interactive Compiler), 49 bytes





      n=>Enumerable.Range(1,n).Sum(x=>n%x<1?n/x:0)==n*2


      Try it online!





      share









      $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.ifUsing("editor", function () {
        StackExchange.using("externalEditor", function () {
        StackExchange.using("snippets", function () {
        StackExchange.snippets.init();
        });
        });
        }, "code-snippets");

        StackExchange.ready(function() {
        var channelOptions = {
        tags: "".split(" "),
        id: "200"
        };
        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%2fcodegolf.stackexchange.com%2fquestions%2f181350%2fam-i-not-good-enough-for-you%23new-answer', 'question_page');
        }
        );

        Post as a guest















        Required, but never shown

























        5 Answers
        5






        active

        oldest

        votes








        5 Answers
        5






        active

        oldest

        votes









        active

        oldest

        votes






        active

        oldest

        votes









        3












        $begingroup$


        Japt -!, 4 bytes



        ¥â¬x


        For some reason ¦ doesnt work on tio so I need to use the -! flag and ¥ instead



        Try it online!






        share|improve this answer











        $endgroup$


















          3












          $begingroup$


          Japt -!, 4 bytes



          ¥â¬x


          For some reason ¦ doesnt work on tio so I need to use the -! flag and ¥ instead



          Try it online!






          share|improve this answer











          $endgroup$
















            3












            3








            3





            $begingroup$


            Japt -!, 4 bytes



            ¥â¬x


            For some reason ¦ doesnt work on tio so I need to use the -! flag and ¥ instead



            Try it online!






            share|improve this answer











            $endgroup$




            Japt -!, 4 bytes



            ¥â¬x


            For some reason ¦ doesnt work on tio so I need to use the -! flag and ¥ instead



            Try it online!







            share|improve this answer














            share|improve this answer



            share|improve this answer








            edited 56 mins ago

























            answered 1 hour ago









            Luis felipe De jesus MunozLuis felipe De jesus Munoz

            5,60821670




            5,60821670























                2












                $begingroup$


                R, 33 bytes





                !2*(n=scan())-sum(which(!n%%1:n))


                Try it online!



                Returns TRUE for perfect numbers ans FALSE for imperfect ones.






                share|improve this answer









                $endgroup$













                • $begingroup$
                  What do the 2 !s in a row get you?
                  $endgroup$
                  – CT Hall
                  39 mins ago










                • $begingroup$
                  @CTHall I misread the spec; they originally mapped 0 (perfect) to FALSE and nonzero to TRUE but I removed one of them to reverse the mapping. It's a useful golfing trick to cast from numeric to logical, often in conjunction with which or [.
                  $endgroup$
                  – Giuseppe
                  18 mins ago


















                2












                $begingroup$


                R, 33 bytes





                !2*(n=scan())-sum(which(!n%%1:n))


                Try it online!



                Returns TRUE for perfect numbers ans FALSE for imperfect ones.






                share|improve this answer









                $endgroup$













                • $begingroup$
                  What do the 2 !s in a row get you?
                  $endgroup$
                  – CT Hall
                  39 mins ago










                • $begingroup$
                  @CTHall I misread the spec; they originally mapped 0 (perfect) to FALSE and nonzero to TRUE but I removed one of them to reverse the mapping. It's a useful golfing trick to cast from numeric to logical, often in conjunction with which or [.
                  $endgroup$
                  – Giuseppe
                  18 mins ago
















                2












                2








                2





                $begingroup$


                R, 33 bytes





                !2*(n=scan())-sum(which(!n%%1:n))


                Try it online!



                Returns TRUE for perfect numbers ans FALSE for imperfect ones.






                share|improve this answer









                $endgroup$




                R, 33 bytes





                !2*(n=scan())-sum(which(!n%%1:n))


                Try it online!



                Returns TRUE for perfect numbers ans FALSE for imperfect ones.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered 42 mins ago









                GiuseppeGiuseppe

                16.8k31052




                16.8k31052












                • $begingroup$
                  What do the 2 !s in a row get you?
                  $endgroup$
                  – CT Hall
                  39 mins ago










                • $begingroup$
                  @CTHall I misread the spec; they originally mapped 0 (perfect) to FALSE and nonzero to TRUE but I removed one of them to reverse the mapping. It's a useful golfing trick to cast from numeric to logical, often in conjunction with which or [.
                  $endgroup$
                  – Giuseppe
                  18 mins ago




















                • $begingroup$
                  What do the 2 !s in a row get you?
                  $endgroup$
                  – CT Hall
                  39 mins ago










                • $begingroup$
                  @CTHall I misread the spec; they originally mapped 0 (perfect) to FALSE and nonzero to TRUE but I removed one of them to reverse the mapping. It's a useful golfing trick to cast from numeric to logical, often in conjunction with which or [.
                  $endgroup$
                  – Giuseppe
                  18 mins ago


















                $begingroup$
                What do the 2 !s in a row get you?
                $endgroup$
                – CT Hall
                39 mins ago




                $begingroup$
                What do the 2 !s in a row get you?
                $endgroup$
                – CT Hall
                39 mins ago












                $begingroup$
                @CTHall I misread the spec; they originally mapped 0 (perfect) to FALSE and nonzero to TRUE but I removed one of them to reverse the mapping. It's a useful golfing trick to cast from numeric to logical, often in conjunction with which or [.
                $endgroup$
                – Giuseppe
                18 mins ago






                $begingroup$
                @CTHall I misread the spec; they originally mapped 0 (perfect) to FALSE and nonzero to TRUE but I removed one of them to reverse the mapping. It's a useful golfing trick to cast from numeric to logical, often in conjunction with which or [.
                $endgroup$
                – Giuseppe
                18 mins ago













                1












                $begingroup$


                CJam, 17 bytes



                ri_,(;{1$%!},:+=


                Try it online!






                share|improve this answer









                $endgroup$


















                  1












                  $begingroup$


                  CJam, 17 bytes



                  ri_,(;{1$%!},:+=


                  Try it online!






                  share|improve this answer









                  $endgroup$
















                    1












                    1








                    1





                    $begingroup$


                    CJam, 17 bytes



                    ri_,(;{1$%!},:+=


                    Try it online!






                    share|improve this answer









                    $endgroup$




                    CJam, 17 bytes



                    ri_,(;{1$%!},:+=


                    Try it online!







                    share|improve this answer












                    share|improve this answer



                    share|improve this answer










                    answered 56 mins ago









                    Esolanging FruitEsolanging Fruit

                    8,50932674




                    8,50932674























                        1












                        $begingroup$

                        Javascript, 62



                        n=>n==[...Array(n).keys()].filter(a=>n%a<1).reduce((a,b)=>a+b)


                        Explanation (although it's pretty simple)



                        n=> //return function that takes n
                        n== //and returns if n is equal to
                        [...Array(n).keys()] //an array [0..(n-1)]...
                        .filter(a=>n%a<1) //where all of the elements that are not divisors of n are taken out...
                        .reduce((a,b)=>a+b) //summed up


                        Thanks to Jo King for the improvement!






                        share|improve this answer











                        $endgroup$













                        • $begingroup$
                          thanks! Added that in
                          $endgroup$
                          – zevee
                          52 mins ago
















                        1












                        $begingroup$

                        Javascript, 62



                        n=>n==[...Array(n).keys()].filter(a=>n%a<1).reduce((a,b)=>a+b)


                        Explanation (although it's pretty simple)



                        n=> //return function that takes n
                        n== //and returns if n is equal to
                        [...Array(n).keys()] //an array [0..(n-1)]...
                        .filter(a=>n%a<1) //where all of the elements that are not divisors of n are taken out...
                        .reduce((a,b)=>a+b) //summed up


                        Thanks to Jo King for the improvement!






                        share|improve this answer











                        $endgroup$













                        • $begingroup$
                          thanks! Added that in
                          $endgroup$
                          – zevee
                          52 mins ago














                        1












                        1








                        1





                        $begingroup$

                        Javascript, 62



                        n=>n==[...Array(n).keys()].filter(a=>n%a<1).reduce((a,b)=>a+b)


                        Explanation (although it's pretty simple)



                        n=> //return function that takes n
                        n== //and returns if n is equal to
                        [...Array(n).keys()] //an array [0..(n-1)]...
                        .filter(a=>n%a<1) //where all of the elements that are not divisors of n are taken out...
                        .reduce((a,b)=>a+b) //summed up


                        Thanks to Jo King for the improvement!






                        share|improve this answer











                        $endgroup$



                        Javascript, 62



                        n=>n==[...Array(n).keys()].filter(a=>n%a<1).reduce((a,b)=>a+b)


                        Explanation (although it's pretty simple)



                        n=> //return function that takes n
                        n== //and returns if n is equal to
                        [...Array(n).keys()] //an array [0..(n-1)]...
                        .filter(a=>n%a<1) //where all of the elements that are not divisors of n are taken out...
                        .reduce((a,b)=>a+b) //summed up


                        Thanks to Jo King for the improvement!







                        share|improve this answer














                        share|improve this answer



                        share|improve this answer








                        edited 52 mins ago

























                        answered 1 hour ago









                        zeveezevee

                        22016




                        22016












                        • $begingroup$
                          thanks! Added that in
                          $endgroup$
                          – zevee
                          52 mins ago


















                        • $begingroup$
                          thanks! Added that in
                          $endgroup$
                          – zevee
                          52 mins ago
















                        $begingroup$
                        thanks! Added that in
                        $endgroup$
                        – zevee
                        52 mins ago




                        $begingroup$
                        thanks! Added that in
                        $endgroup$
                        – zevee
                        52 mins ago











                        0












                        $begingroup$


                        C# (Visual C# Interactive Compiler), 49 bytes





                        n=>Enumerable.Range(1,n).Sum(x=>n%x<1?n/x:0)==n*2


                        Try it online!





                        share









                        $endgroup$


















                          0












                          $begingroup$


                          C# (Visual C# Interactive Compiler), 49 bytes





                          n=>Enumerable.Range(1,n).Sum(x=>n%x<1?n/x:0)==n*2


                          Try it online!





                          share









                          $endgroup$
















                            0












                            0








                            0





                            $begingroup$


                            C# (Visual C# Interactive Compiler), 49 bytes





                            n=>Enumerable.Range(1,n).Sum(x=>n%x<1?n/x:0)==n*2


                            Try it online!





                            share









                            $endgroup$




                            C# (Visual C# Interactive Compiler), 49 bytes





                            n=>Enumerable.Range(1,n).Sum(x=>n%x<1?n/x:0)==n*2


                            Try it online!






                            share











                            share


                            share










                            answered 2 mins ago









                            Embodiment of IgnoranceEmbodiment of Ignorance

                            1,578124




                            1,578124






























                                draft saved

                                draft discarded




















































                                If this is an answer to a challenge…




                                • …Be sure to follow the challenge specification. However, please refrain from exploiting obvious loopholes. Answers abusing any of the standard loopholes are considered invalid. If you think a specification is unclear or underspecified, comment on the question instead.


                                • …Try to optimize your score. For instance, answers to code-golf challenges should attempt to be as short as possible. You can always include a readable version of the code in addition to the competitive one.
                                  Explanations of your answer make it more interesting to read and are very much encouraged.


                                • …Include a short header which indicates the language(s) of your code and its score, as defined by the challenge.



                                More generally…




                                • …Please make sure to answer the question and provide sufficient detail.


                                • …Avoid asking for help, clarification or responding to other answers (use comments instead).





                                draft saved


                                draft discarded














                                StackExchange.ready(
                                function () {
                                StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodegolf.stackexchange.com%2fquestions%2f181350%2fam-i-not-good-enough-for-you%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

                                Knooppunt Holsloot

                                Altaar (religie)

                                Gregoriusmis