Am I not good enough for you?












4












$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, distinguish between whether it is perfect or not.



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 Perfect/Imperfect, please make sure to specify in your answer.










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
    1 hour 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
    1 hour 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
    1 hour ago










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
















4












$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, distinguish between whether it is perfect or not.



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 Perfect/Imperfect, please make sure to specify in your answer.










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
    1 hour 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
    1 hour 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
    1 hour ago










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














4












4








4





$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, distinguish between whether it is perfect or not.



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 Perfect/Imperfect, please make sure to specify in your answer.










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, distinguish between whether it is perfect or not.



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 Perfect/Imperfect, please make sure to specify in your answer.







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 45 mins ago







Jo King

















asked 2 hours 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
    1 hour 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
    1 hour 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
    1 hour ago










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


















  • $begingroup$
    Wait, so truthy is for values that aren't perfect, and falsey is for values that are?
    $endgroup$
    – Esolanging Fruit
    1 hour 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
    1 hour 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
    1 hour ago










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
















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




$begingroup$
Wait, so truthy is for values that aren't perfect, and falsey is for values that are?
$endgroup$
– Esolanging Fruit
1 hour 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
1 hour 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
1 hour 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
1 hour 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
1 hour ago












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




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










9 Answers
9






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
      1 hour 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
      1 hour ago





















    2












    $begingroup$


    Jelly, 3 bytes



    Æṣ=


    Try it online!






    share|improve this answer









    $endgroup$





















      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
          1 hour ago



















        1












        $begingroup$


        Python 3, 46 bytes





        lambda x:sum(i for i in range(1,x)if x%i<1)==x


        Try it online!



        Brute force, sums the factors and checks for equality.






        share|improve this answer











        $endgroup$













        • $begingroup$
          Yeah, that was a typo. I'll fix it now.
          $endgroup$
          – Neil A.
          55 mins ago








        • 1




          $begingroup$
          Using the comprehension condition as a mask for your iteration variable would save a byte.
          $endgroup$
          – Jonathan Frech
          49 mins ago



















        1












        $begingroup$


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





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


        Try it online!






        share|improve this answer











        $endgroup$





















          1












          $begingroup$


          Brachylog, 4 bytes



          fk+?


          Try it online!



          The predicate succeeds for perfect inputs and fails for imperfect inputs, printing true. or false. if run as a complete program (except on the last test case which takes more than a minute on TIO).



                  The input's
          f factors
          k without the last element
          + sum to
          ? the input.





          share|improve this answer









          $endgroup$





















            1












            $begingroup$


            Neim, 3 bytes



            𝐕𝐬𝔼


            Try it online!



            (I don't actually know how to run all of the test cases at once, since I started learning Neim about fifteen minutes ago, but I did check them individually.)



            Prints 0 for imperfect, 1 for perfect.



            𝐕      Pop an int from the stack and push its proper divisors,
            implicitly reading the int from a line of input as the otherwise absent top of the stack.
            𝐬 Pop a list from the stack and push the sum of the values it contains.
            𝔼 Pop two ints from the stack and push 1 if they are equal, 0 if they are not;
            implicitly reading the same line of input that was already read as the second int, I guess?
            Implicitly print the contents of the stack, or something like that.





            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.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

























              9 Answers
              9






              active

              oldest

              votes








              9 Answers
              9






              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 1 hour ago

























                  answered 2 hours 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
                        1 hour 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
                        1 hour 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
                        1 hour 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
                        1 hour 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 1 hour ago









                      GiuseppeGiuseppe

                      16.8k31052




                      16.8k31052












                      • $begingroup$
                        What do the 2 !s in a row get you?
                        $endgroup$
                        – CT Hall
                        1 hour 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
                        1 hour ago




















                      • $begingroup$
                        What do the 2 !s in a row get you?
                        $endgroup$
                        – CT Hall
                        1 hour 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
                        1 hour ago


















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




                      $begingroup$
                      What do the 2 !s in a row get you?
                      $endgroup$
                      – CT Hall
                      1 hour 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
                      1 hour 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
                      1 hour ago













                      2












                      $begingroup$


                      Jelly, 3 bytes



                      Æṣ=


                      Try it online!






                      share|improve this answer









                      $endgroup$


















                        2












                        $begingroup$


                        Jelly, 3 bytes



                        Æṣ=


                        Try it online!






                        share|improve this answer









                        $endgroup$
















                          2












                          2








                          2





                          $begingroup$


                          Jelly, 3 bytes



                          Æṣ=


                          Try it online!






                          share|improve this answer









                          $endgroup$




                          Jelly, 3 bytes



                          Æṣ=


                          Try it online!







                          share|improve this answer












                          share|improve this answer



                          share|improve this answer










                          answered 32 mins ago









                          Mr. XcoderMr. Xcoder

                          32.1k759199




                          32.1k759199























                              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 1 hour 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
                                        1 hour 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
                                        1 hour 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 1 hour ago

























                                      answered 1 hour ago









                                      zeveezevee

                                      22016




                                      22016












                                      • $begingroup$
                                        thanks! Added that in
                                        $endgroup$
                                        – zevee
                                        1 hour ago


















                                      • $begingroup$
                                        thanks! Added that in
                                        $endgroup$
                                        – zevee
                                        1 hour ago
















                                      $begingroup$
                                      thanks! Added that in
                                      $endgroup$
                                      – zevee
                                      1 hour ago




                                      $begingroup$
                                      thanks! Added that in
                                      $endgroup$
                                      – zevee
                                      1 hour ago











                                      1












                                      $begingroup$


                                      Python 3, 46 bytes





                                      lambda x:sum(i for i in range(1,x)if x%i<1)==x


                                      Try it online!



                                      Brute force, sums the factors and checks for equality.






                                      share|improve this answer











                                      $endgroup$













                                      • $begingroup$
                                        Yeah, that was a typo. I'll fix it now.
                                        $endgroup$
                                        – Neil A.
                                        55 mins ago








                                      • 1




                                        $begingroup$
                                        Using the comprehension condition as a mask for your iteration variable would save a byte.
                                        $endgroup$
                                        – Jonathan Frech
                                        49 mins ago
















                                      1












                                      $begingroup$


                                      Python 3, 46 bytes





                                      lambda x:sum(i for i in range(1,x)if x%i<1)==x


                                      Try it online!



                                      Brute force, sums the factors and checks for equality.






                                      share|improve this answer











                                      $endgroup$













                                      • $begingroup$
                                        Yeah, that was a typo. I'll fix it now.
                                        $endgroup$
                                        – Neil A.
                                        55 mins ago








                                      • 1




                                        $begingroup$
                                        Using the comprehension condition as a mask for your iteration variable would save a byte.
                                        $endgroup$
                                        – Jonathan Frech
                                        49 mins ago














                                      1












                                      1








                                      1





                                      $begingroup$


                                      Python 3, 46 bytes





                                      lambda x:sum(i for i in range(1,x)if x%i<1)==x


                                      Try it online!



                                      Brute force, sums the factors and checks for equality.






                                      share|improve this answer











                                      $endgroup$




                                      Python 3, 46 bytes





                                      lambda x:sum(i for i in range(1,x)if x%i<1)==x


                                      Try it online!



                                      Brute force, sums the factors and checks for equality.







                                      share|improve this answer














                                      share|improve this answer



                                      share|improve this answer








                                      edited 55 mins ago

























                                      answered 56 mins ago









                                      Neil A.Neil A.

                                      1,278120




                                      1,278120












                                      • $begingroup$
                                        Yeah, that was a typo. I'll fix it now.
                                        $endgroup$
                                        – Neil A.
                                        55 mins ago








                                      • 1




                                        $begingroup$
                                        Using the comprehension condition as a mask for your iteration variable would save a byte.
                                        $endgroup$
                                        – Jonathan Frech
                                        49 mins ago


















                                      • $begingroup$
                                        Yeah, that was a typo. I'll fix it now.
                                        $endgroup$
                                        – Neil A.
                                        55 mins ago








                                      • 1




                                        $begingroup$
                                        Using the comprehension condition as a mask for your iteration variable would save a byte.
                                        $endgroup$
                                        – Jonathan Frech
                                        49 mins ago
















                                      $begingroup$
                                      Yeah, that was a typo. I'll fix it now.
                                      $endgroup$
                                      – Neil A.
                                      55 mins ago






                                      $begingroup$
                                      Yeah, that was a typo. I'll fix it now.
                                      $endgroup$
                                      – Neil A.
                                      55 mins ago






                                      1




                                      1




                                      $begingroup$
                                      Using the comprehension condition as a mask for your iteration variable would save a byte.
                                      $endgroup$
                                      – Jonathan Frech
                                      49 mins ago




                                      $begingroup$
                                      Using the comprehension condition as a mask for your iteration variable would save a byte.
                                      $endgroup$
                                      – Jonathan Frech
                                      49 mins ago











                                      1












                                      $begingroup$


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





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


                                      Try it online!






                                      share|improve this answer











                                      $endgroup$


















                                        1












                                        $begingroup$


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





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


                                        Try it online!






                                        share|improve this answer











                                        $endgroup$
















                                          1












                                          1








                                          1





                                          $begingroup$


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





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


                                          Try it online!






                                          share|improve this answer











                                          $endgroup$




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





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


                                          Try it online!







                                          share|improve this answer














                                          share|improve this answer



                                          share|improve this answer








                                          edited 54 mins ago

























                                          answered 1 hour ago









                                          Embodiment of IgnoranceEmbodiment of Ignorance

                                          1,588124




                                          1,588124























                                              1












                                              $begingroup$


                                              Brachylog, 4 bytes



                                              fk+?


                                              Try it online!



                                              The predicate succeeds for perfect inputs and fails for imperfect inputs, printing true. or false. if run as a complete program (except on the last test case which takes more than a minute on TIO).



                                                      The input's
                                              f factors
                                              k without the last element
                                              + sum to
                                              ? the input.





                                              share|improve this answer









                                              $endgroup$


















                                                1












                                                $begingroup$


                                                Brachylog, 4 bytes



                                                fk+?


                                                Try it online!



                                                The predicate succeeds for perfect inputs and fails for imperfect inputs, printing true. or false. if run as a complete program (except on the last test case which takes more than a minute on TIO).



                                                        The input's
                                                f factors
                                                k without the last element
                                                + sum to
                                                ? the input.





                                                share|improve this answer









                                                $endgroup$
















                                                  1












                                                  1








                                                  1





                                                  $begingroup$


                                                  Brachylog, 4 bytes



                                                  fk+?


                                                  Try it online!



                                                  The predicate succeeds for perfect inputs and fails for imperfect inputs, printing true. or false. if run as a complete program (except on the last test case which takes more than a minute on TIO).



                                                          The input's
                                                  f factors
                                                  k without the last element
                                                  + sum to
                                                  ? the input.





                                                  share|improve this answer









                                                  $endgroup$




                                                  Brachylog, 4 bytes



                                                  fk+?


                                                  Try it online!



                                                  The predicate succeeds for perfect inputs and fails for imperfect inputs, printing true. or false. if run as a complete program (except on the last test case which takes more than a minute on TIO).



                                                          The input's
                                                  f factors
                                                  k without the last element
                                                  + sum to
                                                  ? the input.






                                                  share|improve this answer












                                                  share|improve this answer



                                                  share|improve this answer










                                                  answered 53 mins ago









                                                  Unrelated StringUnrelated String

                                                  92118




                                                  92118























                                                      1












                                                      $begingroup$


                                                      Neim, 3 bytes



                                                      𝐕𝐬𝔼


                                                      Try it online!



                                                      (I don't actually know how to run all of the test cases at once, since I started learning Neim about fifteen minutes ago, but I did check them individually.)



                                                      Prints 0 for imperfect, 1 for perfect.



                                                      𝐕      Pop an int from the stack and push its proper divisors,
                                                      implicitly reading the int from a line of input as the otherwise absent top of the stack.
                                                      𝐬 Pop a list from the stack and push the sum of the values it contains.
                                                      𝔼 Pop two ints from the stack and push 1 if they are equal, 0 if they are not;
                                                      implicitly reading the same line of input that was already read as the second int, I guess?
                                                      Implicitly print the contents of the stack, or something like that.





                                                      share|improve this answer









                                                      $endgroup$


















                                                        1












                                                        $begingroup$


                                                        Neim, 3 bytes



                                                        𝐕𝐬𝔼


                                                        Try it online!



                                                        (I don't actually know how to run all of the test cases at once, since I started learning Neim about fifteen minutes ago, but I did check them individually.)



                                                        Prints 0 for imperfect, 1 for perfect.



                                                        𝐕      Pop an int from the stack and push its proper divisors,
                                                        implicitly reading the int from a line of input as the otherwise absent top of the stack.
                                                        𝐬 Pop a list from the stack and push the sum of the values it contains.
                                                        𝔼 Pop two ints from the stack and push 1 if they are equal, 0 if they are not;
                                                        implicitly reading the same line of input that was already read as the second int, I guess?
                                                        Implicitly print the contents of the stack, or something like that.





                                                        share|improve this answer









                                                        $endgroup$
















                                                          1












                                                          1








                                                          1





                                                          $begingroup$


                                                          Neim, 3 bytes



                                                          𝐕𝐬𝔼


                                                          Try it online!



                                                          (I don't actually know how to run all of the test cases at once, since I started learning Neim about fifteen minutes ago, but I did check them individually.)



                                                          Prints 0 for imperfect, 1 for perfect.



                                                          𝐕      Pop an int from the stack and push its proper divisors,
                                                          implicitly reading the int from a line of input as the otherwise absent top of the stack.
                                                          𝐬 Pop a list from the stack and push the sum of the values it contains.
                                                          𝔼 Pop two ints from the stack and push 1 if they are equal, 0 if they are not;
                                                          implicitly reading the same line of input that was already read as the second int, I guess?
                                                          Implicitly print the contents of the stack, or something like that.





                                                          share|improve this answer









                                                          $endgroup$




                                                          Neim, 3 bytes



                                                          𝐕𝐬𝔼


                                                          Try it online!



                                                          (I don't actually know how to run all of the test cases at once, since I started learning Neim about fifteen minutes ago, but I did check them individually.)



                                                          Prints 0 for imperfect, 1 for perfect.



                                                          𝐕      Pop an int from the stack and push its proper divisors,
                                                          implicitly reading the int from a line of input as the otherwise absent top of the stack.
                                                          𝐬 Pop a list from the stack and push the sum of the values it contains.
                                                          𝔼 Pop two ints from the stack and push 1 if they are equal, 0 if they are not;
                                                          implicitly reading the same line of input that was already read as the second int, I guess?
                                                          Implicitly print the contents of the stack, or something like that.






                                                          share|improve this answer












                                                          share|improve this answer



                                                          share|improve this answer










                                                          answered 26 mins ago









                                                          Unrelated StringUnrelated String

                                                          92118




                                                          92118






























                                                              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

                                                              Bundesstraße 106

                                                              Verónica Boquete

                                                              Ida-Boy-Ed-Garten