Am I not good enough for you?
$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.
code-golf number decision-problem number-theory factoring
$endgroup$
add a comment |
$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.
code-golf number decision-problem number-theory factoring
$endgroup$
$begingroup$
Wait, so truthy is for values that aren't perfect, and falsey is for values that are?
$endgroup$
– Esolanging Fruit
2 hours 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
2 hours 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
2 hours ago
$begingroup$
@EsolangingFruit Good point. I've renamed the test cases toImperfect
/Perfect
to make it clearer
$endgroup$
– Jo King
2 hours ago
add a comment |
$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.
code-golf number decision-problem number-theory factoring
$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
code-golf number decision-problem number-theory factoring
edited 1 hour 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
2 hours 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
2 hours 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
2 hours ago
$begingroup$
@EsolangingFruit Good point. I've renamed the test cases toImperfect
/Perfect
to make it clearer
$endgroup$
– Jo King
2 hours ago
add a comment |
$begingroup$
Wait, so truthy is for values that aren't perfect, and falsey is for values that are?
$endgroup$
– Esolanging Fruit
2 hours 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
2 hours 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
2 hours ago
$begingroup$
@EsolangingFruit Good point. I've renamed the test cases toImperfect
/Perfect
to make it clearer
$endgroup$
– Jo King
2 hours ago
$begingroup$
Wait, so truthy is for values that aren't perfect, and falsey is for values that are?
$endgroup$
– Esolanging Fruit
2 hours ago
$begingroup$
Wait, so truthy is for values that aren't perfect, and falsey is for values that are?
$endgroup$
– Esolanging Fruit
2 hours 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
2 hours 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
2 hours 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
2 hours 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
2 hours ago
$begingroup$
@EsolangingFruit Good point. I've renamed the test cases to
Imperfect
/Perfect
to make it clearer$endgroup$
– Jo King
2 hours ago
$begingroup$
@EsolangingFruit Good point. I've renamed the test cases to
Imperfect
/Perfect
to make it clearer$endgroup$
– Jo King
2 hours ago
add a comment |
9 Answers
9
active
oldest
votes
$begingroup$
Japt -!
, 4 bytes
¥â¬x
For some reason ¦
doesnt work on tio so I need to use the -!
flag and ¥
instead
Try it online!
$endgroup$
add a comment |
$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.
$endgroup$
$begingroup$
What do the 2 !s in a row get you?
$endgroup$
– CT Hall
2 hours ago
$begingroup$
@CTHall I misread the spec; they originally mapped0
(perfect) toFALSE
and nonzero toTRUE
but I removed one of them to reverse the mapping. It's a useful golfing trick to cast fromnumeric
tological
, often in conjunction withwhich
or[
.
$endgroup$
– Giuseppe
1 hour ago
add a comment |
$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!
$endgroup$
$begingroup$
thanks! Added that in
$endgroup$
– zevee
2 hours ago
add a comment |
$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.
$endgroup$
$begingroup$
Yeah, that was a typo. I'll fix it now.
$endgroup$
– Neil A.
1 hour ago
1
$begingroup$
Using the comprehension condition as a mask for your iteration variable would save a byte.
$endgroup$
– Jonathan Frech
1 hour ago
add a comment |
$begingroup$
Jelly, 3 bytes
Æṣ=
Try it online!
$endgroup$
add a comment |
$begingroup$
CJam, 17 bytes
ri_,(;{1$%!},:+=
Try it online!
$endgroup$
add a comment |
$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!
$endgroup$
add a comment |
$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.
$endgroup$
add a comment |
$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.
$endgroup$
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
$begingroup$
Japt -!
, 4 bytes
¥â¬x
For some reason ¦
doesnt work on tio so I need to use the -!
flag and ¥
instead
Try it online!
$endgroup$
add a comment |
$begingroup$
Japt -!
, 4 bytes
¥â¬x
For some reason ¦
doesnt work on tio so I need to use the -!
flag and ¥
instead
Try it online!
$endgroup$
add a comment |
$begingroup$
Japt -!
, 4 bytes
¥â¬x
For some reason ¦
doesnt work on tio so I need to use the -!
flag and ¥
instead
Try it online!
$endgroup$
Japt -!
, 4 bytes
¥â¬x
For some reason ¦
doesnt work on tio so I need to use the -!
flag and ¥
instead
Try it online!
edited 2 hours ago
answered 2 hours ago
Luis felipe De jesus MunozLuis felipe De jesus Munoz
5,60821670
5,60821670
add a comment |
add a comment |
$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.
$endgroup$
$begingroup$
What do the 2 !s in a row get you?
$endgroup$
– CT Hall
2 hours ago
$begingroup$
@CTHall I misread the spec; they originally mapped0
(perfect) toFALSE
and nonzero toTRUE
but I removed one of them to reverse the mapping. It's a useful golfing trick to cast fromnumeric
tological
, often in conjunction withwhich
or[
.
$endgroup$
– Giuseppe
1 hour ago
add a comment |
$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.
$endgroup$
$begingroup$
What do the 2 !s in a row get you?
$endgroup$
– CT Hall
2 hours ago
$begingroup$
@CTHall I misread the spec; they originally mapped0
(perfect) toFALSE
and nonzero toTRUE
but I removed one of them to reverse the mapping. It's a useful golfing trick to cast fromnumeric
tological
, often in conjunction withwhich
or[
.
$endgroup$
– Giuseppe
1 hour ago
add a comment |
$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.
$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.
answered 2 hours ago
GiuseppeGiuseppe
16.8k31052
16.8k31052
$begingroup$
What do the 2 !s in a row get you?
$endgroup$
– CT Hall
2 hours ago
$begingroup$
@CTHall I misread the spec; they originally mapped0
(perfect) toFALSE
and nonzero toTRUE
but I removed one of them to reverse the mapping. It's a useful golfing trick to cast fromnumeric
tological
, often in conjunction withwhich
or[
.
$endgroup$
– Giuseppe
1 hour ago
add a comment |
$begingroup$
What do the 2 !s in a row get you?
$endgroup$
– CT Hall
2 hours ago
$begingroup$
@CTHall I misread the spec; they originally mapped0
(perfect) toFALSE
and nonzero toTRUE
but I removed one of them to reverse the mapping. It's a useful golfing trick to cast fromnumeric
tological
, often in conjunction withwhich
or[
.
$endgroup$
– Giuseppe
1 hour ago
$begingroup$
What do the 2 !s in a row get you?
$endgroup$
– CT Hall
2 hours ago
$begingroup$
What do the 2 !s in a row get you?
$endgroup$
– CT Hall
2 hours 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
add a comment |
$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!
$endgroup$
$begingroup$
thanks! Added that in
$endgroup$
– zevee
2 hours ago
add a comment |
$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!
$endgroup$
$begingroup$
thanks! Added that in
$endgroup$
– zevee
2 hours ago
add a comment |
$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!
$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!
edited 2 hours ago
answered 2 hours ago
zeveezevee
23016
23016
$begingroup$
thanks! Added that in
$endgroup$
– zevee
2 hours ago
add a comment |
$begingroup$
thanks! Added that in
$endgroup$
– zevee
2 hours ago
$begingroup$
thanks! Added that in
$endgroup$
– zevee
2 hours ago
$begingroup$
thanks! Added that in
$endgroup$
– zevee
2 hours ago
add a comment |
$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.
$endgroup$
$begingroup$
Yeah, that was a typo. I'll fix it now.
$endgroup$
– Neil A.
1 hour ago
1
$begingroup$
Using the comprehension condition as a mask for your iteration variable would save a byte.
$endgroup$
– Jonathan Frech
1 hour ago
add a comment |
$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.
$endgroup$
$begingroup$
Yeah, that was a typo. I'll fix it now.
$endgroup$
– Neil A.
1 hour ago
1
$begingroup$
Using the comprehension condition as a mask for your iteration variable would save a byte.
$endgroup$
– Jonathan Frech
1 hour ago
add a comment |
$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.
$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.
edited 1 hour ago
answered 1 hour ago
Neil A.Neil A.
1,288120
1,288120
$begingroup$
Yeah, that was a typo. I'll fix it now.
$endgroup$
– Neil A.
1 hour ago
1
$begingroup$
Using the comprehension condition as a mask for your iteration variable would save a byte.
$endgroup$
– Jonathan Frech
1 hour ago
add a comment |
$begingroup$
Yeah, that was a typo. I'll fix it now.
$endgroup$
– Neil A.
1 hour ago
1
$begingroup$
Using the comprehension condition as a mask for your iteration variable would save a byte.
$endgroup$
– Jonathan Frech
1 hour ago
$begingroup$
Yeah, that was a typo. I'll fix it now.
$endgroup$
– Neil A.
1 hour ago
$begingroup$
Yeah, that was a typo. I'll fix it now.
$endgroup$
– Neil A.
1 hour ago
1
1
$begingroup$
Using the comprehension condition as a mask for your iteration variable would save a byte.
$endgroup$
– Jonathan Frech
1 hour ago
$begingroup$
Using the comprehension condition as a mask for your iteration variable would save a byte.
$endgroup$
– Jonathan Frech
1 hour ago
add a comment |
$begingroup$
Jelly, 3 bytes
Æṣ=
Try it online!
$endgroup$
add a comment |
$begingroup$
Jelly, 3 bytes
Æṣ=
Try it online!
$endgroup$
add a comment |
$begingroup$
Jelly, 3 bytes
Æṣ=
Try it online!
$endgroup$
Jelly, 3 bytes
Æṣ=
Try it online!
answered 1 hour ago
Mr. XcoderMr. Xcoder
32.1k759199
32.1k759199
add a comment |
add a comment |
$begingroup$
CJam, 17 bytes
ri_,(;{1$%!},:+=
Try it online!
$endgroup$
add a comment |
$begingroup$
CJam, 17 bytes
ri_,(;{1$%!},:+=
Try it online!
$endgroup$
add a comment |
$begingroup$
CJam, 17 bytes
ri_,(;{1$%!},:+=
Try it online!
$endgroup$
CJam, 17 bytes
ri_,(;{1$%!},:+=
Try it online!
answered 2 hours ago
Esolanging FruitEsolanging Fruit
8,50932674
8,50932674
add a comment |
add a comment |
$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!
$endgroup$
add a comment |
$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!
$endgroup$
add a comment |
$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!
$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!
edited 1 hour ago
answered 1 hour ago
Embodiment of IgnoranceEmbodiment of Ignorance
1,588124
1,588124
add a comment |
add a comment |
$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.
$endgroup$
add a comment |
$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.
$endgroup$
add a comment |
$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.
$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.
answered 1 hour ago
Unrelated StringUnrelated String
92118
92118
add a comment |
add a comment |
$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.
$endgroup$
add a comment |
$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.
$endgroup$
add a comment |
$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.
$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.
answered 1 hour ago
Unrelated StringUnrelated String
92118
92118
add a comment |
add a comment |
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).
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
$begingroup$
Wait, so truthy is for values that aren't perfect, and falsey is for values that are?
$endgroup$
– Esolanging Fruit
2 hours 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
2 hours 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
2 hours ago
$begingroup$
@EsolangingFruit Good point. I've renamed the test cases to
Imperfect
/Perfect
to make it clearer$endgroup$
– Jo King
2 hours ago