A Note on N!
$begingroup$
J. E. Maxfield proved following theorem (see DOI: 10.2307/2688966):
If A is any positive integer having m digits, there exists a positive integer N such that the first m digits of N! constitute the integer A.
Challenge
Your challenge is given some A find a corresponding N (in base 10).
Details
- Your submission should work for arbitrary
Agiven enough time and memory. Just using e.g. 32-bit types to represent integers is not sufficient. - You don't necessarily need to output the least possible
N.
Examples
A N
1 1
2 2
3 9
4 8
5 7
6 3
7 6
9 96
12 5
16 89
17 69
18 76
19 63
24 4
72 6
841 12745
206591378 314
The least possible N for each A can be found in https://oeis.org/A076219
code-golf math number integer factorial
$endgroup$
|
show 3 more comments
$begingroup$
J. E. Maxfield proved following theorem (see DOI: 10.2307/2688966):
If A is any positive integer having m digits, there exists a positive integer N such that the first m digits of N! constitute the integer A.
Challenge
Your challenge is given some A find a corresponding N (in base 10).
Details
- Your submission should work for arbitrary
Agiven enough time and memory. Just using e.g. 32-bit types to represent integers is not sufficient. - You don't necessarily need to output the least possible
N.
Examples
A N
1 1
2 2
3 9
4 8
5 7
6 3
7 6
9 96
12 5
16 89
17 69
18 76
19 63
24 4
72 6
841 12745
206591378 314
The least possible N for each A can be found in https://oeis.org/A076219
code-golf math number integer factorial
$endgroup$
4
$begingroup$
I... why did he prove that theorem? Did he just wake up one day and say "I shall solve this!" or did it serve a purpose?
$endgroup$
– Magic Octopus Urn
3 hours ago
$begingroup$
By "any A" do you mean that like using numbers in Python orlong longs in C++ is invalid?
$endgroup$
– HyperNeutrino
2 hours ago
2
$begingroup$
Can we return0for input1? Lynn's answer currently does.
$endgroup$
– Erik the Outgolfer
2 hours ago
2
$begingroup$
@SolomonUcko My question is whether we're actually required to output a positive integer or not, though, that quote itself isn't really enough to specify that, and nowhere does it say that the test cases include the least possible output for each input.
$endgroup$
– Erik the Outgolfer
59 mins ago
1
$begingroup$
@SolomonUcko Yes, "positive" excludes 0, but, again, nowhere in the challenge does it say that the output must be positive. Well, technically, it does restrict the output, but you really need to see into the details to figure that out (the challenge text also uses the "N" variable), so it's not at all clear if OP actually intended to restrict the output to the positive integers or if we can output0for input1as well.
$endgroup$
– Erik the Outgolfer
53 mins ago
|
show 3 more comments
$begingroup$
J. E. Maxfield proved following theorem (see DOI: 10.2307/2688966):
If A is any positive integer having m digits, there exists a positive integer N such that the first m digits of N! constitute the integer A.
Challenge
Your challenge is given some A find a corresponding N (in base 10).
Details
- Your submission should work for arbitrary
Agiven enough time and memory. Just using e.g. 32-bit types to represent integers is not sufficient. - You don't necessarily need to output the least possible
N.
Examples
A N
1 1
2 2
3 9
4 8
5 7
6 3
7 6
9 96
12 5
16 89
17 69
18 76
19 63
24 4
72 6
841 12745
206591378 314
The least possible N for each A can be found in https://oeis.org/A076219
code-golf math number integer factorial
$endgroup$
J. E. Maxfield proved following theorem (see DOI: 10.2307/2688966):
If A is any positive integer having m digits, there exists a positive integer N such that the first m digits of N! constitute the integer A.
Challenge
Your challenge is given some A find a corresponding N (in base 10).
Details
- Your submission should work for arbitrary
Agiven enough time and memory. Just using e.g. 32-bit types to represent integers is not sufficient. - You don't necessarily need to output the least possible
N.
Examples
A N
1 1
2 2
3 9
4 8
5 7
6 3
7 6
9 96
12 5
16 89
17 69
18 76
19 63
24 4
72 6
841 12745
206591378 314
The least possible N for each A can be found in https://oeis.org/A076219
code-golf math number integer factorial
code-golf math number integer factorial
asked 3 hours ago
flawrflawr
27.5k668194
27.5k668194
4
$begingroup$
I... why did he prove that theorem? Did he just wake up one day and say "I shall solve this!" or did it serve a purpose?
$endgroup$
– Magic Octopus Urn
3 hours ago
$begingroup$
By "any A" do you mean that like using numbers in Python orlong longs in C++ is invalid?
$endgroup$
– HyperNeutrino
2 hours ago
2
$begingroup$
Can we return0for input1? Lynn's answer currently does.
$endgroup$
– Erik the Outgolfer
2 hours ago
2
$begingroup$
@SolomonUcko My question is whether we're actually required to output a positive integer or not, though, that quote itself isn't really enough to specify that, and nowhere does it say that the test cases include the least possible output for each input.
$endgroup$
– Erik the Outgolfer
59 mins ago
1
$begingroup$
@SolomonUcko Yes, "positive" excludes 0, but, again, nowhere in the challenge does it say that the output must be positive. Well, technically, it does restrict the output, but you really need to see into the details to figure that out (the challenge text also uses the "N" variable), so it's not at all clear if OP actually intended to restrict the output to the positive integers or if we can output0for input1as well.
$endgroup$
– Erik the Outgolfer
53 mins ago
|
show 3 more comments
4
$begingroup$
I... why did he prove that theorem? Did he just wake up one day and say "I shall solve this!" or did it serve a purpose?
$endgroup$
– Magic Octopus Urn
3 hours ago
$begingroup$
By "any A" do you mean that like using numbers in Python orlong longs in C++ is invalid?
$endgroup$
– HyperNeutrino
2 hours ago
2
$begingroup$
Can we return0for input1? Lynn's answer currently does.
$endgroup$
– Erik the Outgolfer
2 hours ago
2
$begingroup$
@SolomonUcko My question is whether we're actually required to output a positive integer or not, though, that quote itself isn't really enough to specify that, and nowhere does it say that the test cases include the least possible output for each input.
$endgroup$
– Erik the Outgolfer
59 mins ago
1
$begingroup$
@SolomonUcko Yes, "positive" excludes 0, but, again, nowhere in the challenge does it say that the output must be positive. Well, technically, it does restrict the output, but you really need to see into the details to figure that out (the challenge text also uses the "N" variable), so it's not at all clear if OP actually intended to restrict the output to the positive integers or if we can output0for input1as well.
$endgroup$
– Erik the Outgolfer
53 mins ago
4
4
$begingroup$
I... why did he prove that theorem? Did he just wake up one day and say "I shall solve this!" or did it serve a purpose?
$endgroup$
– Magic Octopus Urn
3 hours ago
$begingroup$
I... why did he prove that theorem? Did he just wake up one day and say "I shall solve this!" or did it serve a purpose?
$endgroup$
– Magic Octopus Urn
3 hours ago
$begingroup$
By "any A" do you mean that like using numbers in Python or
long longs in C++ is invalid?$endgroup$
– HyperNeutrino
2 hours ago
$begingroup$
By "any A" do you mean that like using numbers in Python or
long longs in C++ is invalid?$endgroup$
– HyperNeutrino
2 hours ago
2
2
$begingroup$
Can we return
0 for input 1? Lynn's answer currently does.$endgroup$
– Erik the Outgolfer
2 hours ago
$begingroup$
Can we return
0 for input 1? Lynn's answer currently does.$endgroup$
– Erik the Outgolfer
2 hours ago
2
2
$begingroup$
@SolomonUcko My question is whether we're actually required to output a positive integer or not, though, that quote itself isn't really enough to specify that, and nowhere does it say that the test cases include the least possible output for each input.
$endgroup$
– Erik the Outgolfer
59 mins ago
$begingroup$
@SolomonUcko My question is whether we're actually required to output a positive integer or not, though, that quote itself isn't really enough to specify that, and nowhere does it say that the test cases include the least possible output for each input.
$endgroup$
– Erik the Outgolfer
59 mins ago
1
1
$begingroup$
@SolomonUcko Yes, "positive" excludes 0, but, again, nowhere in the challenge does it say that the output must be positive. Well, technically, it does restrict the output, but you really need to see into the details to figure that out (the challenge text also uses the "N" variable), so it's not at all clear if OP actually intended to restrict the output to the positive integers or if we can output
0 for input 1 as well.$endgroup$
– Erik the Outgolfer
53 mins ago
$begingroup$
@SolomonUcko Yes, "positive" excludes 0, but, again, nowhere in the challenge does it say that the output must be positive. Well, technically, it does restrict the output, but you really need to see into the details to figure that out (the challenge text also uses the "N" variable), so it's not at all clear if OP actually intended to restrict the output to the positive integers or if we can output
0 for input 1 as well.$endgroup$
– Erik the Outgolfer
53 mins ago
|
show 3 more comments
9 Answers
9
active
oldest
votes
$begingroup$
Python 2, 47 bytes
f=lambda a,n=1,p=1:`p`.find(a)and-~f(a,n+1,p*n)
Try it online!
Takes a string as input, like f('18').
The trick here is that x.find(y) == 0 precisely when x.startswith(y).
The and-expression will short circuit at `p`.find(a) with result 0 as soon as `p` starts with a; otherwise, it will evaluate to -~f(a,n+1,p*n), id est 1 + f(a,n+1,p*n).
The end result is 1 + (1 + (1 + (... + 0))), n layers deep, so n.
$endgroup$
1
$begingroup$
Returns0for1.
$endgroup$
– Shaggy
2 hours ago
2
$begingroup$
@Shaggy I've asked about that in the comments, because0is a pretty sensible answer if it must just be non-negative (a fix could cost up to 8 bytes).
$endgroup$
– Erik the Outgolfer
2 hours ago
1
$begingroup$
@EriktheOutgolfer hmm, I can think off=lambda a,n=2,p=1:(`p`.find(a)and f(a,n+1,p*n))+1, a +3 byte fix.
$endgroup$
– Lynn
2 hours ago
$begingroup$
@Lynn Maybe, I'm a bit tired now. :P
$endgroup$
– Erik the Outgolfer
2 hours ago
$begingroup$
Nice solution by the way. I was working on the same method but calculating the factorial on each iteration; implementing your approach saved me a few bytes so+1anyway.
$endgroup$
– Shaggy
1 hour ago
add a comment |
$begingroup$
Jelly, 8 bytes
1!w⁼1ʋ1#
Try it online!
Takes an integer and returns a singleton.
$endgroup$
add a comment |
$begingroup$
JavaScript, 47 43 bytes
I/O as a BigInt.
n=>(g=x=>`${x}`.search(n)?g(x*++i):i)(i=1n)
Try It Online (The 841 test case times out on TIO)
Saved a few bytes by taking Lynn's approach of "building" the factorial rather than calculating it on each iteration so please upvote her solution as well if you're upvoting this one.
$endgroup$
$begingroup$
Sadly,_Ês bU}f1in Japt doesn't work
$endgroup$
– Embodiment of Ignorance
1 hour ago
$begingroup$
@EmbodimentofIgnorance, yeah, I had that too. You could remove the space afters.
$endgroup$
– Shaggy
1 hour ago
$begingroup$
@EmbodimentofIgnorance, you could also remove the1if0can be returned forn=1.
$endgroup$
– Shaggy
1 hour ago
add a comment |
$begingroup$
Jelly, 16 bytes
‘ɼ!³;D®ß⁼Lḣ@¥¥/?
Try it online!
Explanation
‘ɼ | Increment the register (initially 0)
! | Factorial
³; | Prepend the input
D | Convert to decimal digits
⁼ ¥¥/? | If the input diguts are equal to...
Lḣ@ | The same number of diguts from the head of the factorial
® | Return the register
ß | Otherwise run the link again
$endgroup$
add a comment |
$begingroup$
Jelly, 11 bytes
‘ɼµ®!Dw³’µ¿
Try it online!
$endgroup$
add a comment |
$begingroup$
Python 3, 88 bytes
lambda x,a=0:str(F(a)).startswith(str(x))and a or f(x,a+1)
F=lambda x:x and x*F(x-1)or 1
Try it online!
Recursive so it dies quite quickly.
$endgroup$
$begingroup$
64 bytes
$endgroup$
– Jo King
39 mins ago
add a comment |
$begingroup$
Pyth - 8 bytes
f!x`.!Tz
f filter. With no second arg, it searches 1.. for first truthy
! logical not, here it checks for zero
x z indexof. z is input as string
` string repr
.!T Factorial of lambda var
Try it online.
$endgroup$
add a comment |
$begingroup$
Perl 6, 23 bytes
{+([*](1..*).../^$_/)}
Try it online!
Explanation
{ } # Anonymous code block
[*](1..*) # From the infinite list of factorials
... # Take up to the first element
/^$_/ # That starts with the input
+( ) # And return the length of the sequence
$endgroup$
add a comment |
$begingroup$
Charcoal, 16 bytes
⊞υ¹W⌕IΠυθ⊞υLυI⊟υ
Try it online! Link is to verbose version of code. Explanation:
⊞υ¹
Push 1 to the empty list so that it starts off with a defined product.
W⌕IΠυθ
Repeat while the input cannot be found at the beginning of the product of the list...
⊞υLυ
... push the length of the list to itself.
I⊟υ
Print the last value pushed to the list.
$endgroup$
add a comment |
Your Answer
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%2f184776%2fa-note-on-n%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$
Python 2, 47 bytes
f=lambda a,n=1,p=1:`p`.find(a)and-~f(a,n+1,p*n)
Try it online!
Takes a string as input, like f('18').
The trick here is that x.find(y) == 0 precisely when x.startswith(y).
The and-expression will short circuit at `p`.find(a) with result 0 as soon as `p` starts with a; otherwise, it will evaluate to -~f(a,n+1,p*n), id est 1 + f(a,n+1,p*n).
The end result is 1 + (1 + (1 + (... + 0))), n layers deep, so n.
$endgroup$
1
$begingroup$
Returns0for1.
$endgroup$
– Shaggy
2 hours ago
2
$begingroup$
@Shaggy I've asked about that in the comments, because0is a pretty sensible answer if it must just be non-negative (a fix could cost up to 8 bytes).
$endgroup$
– Erik the Outgolfer
2 hours ago
1
$begingroup$
@EriktheOutgolfer hmm, I can think off=lambda a,n=2,p=1:(`p`.find(a)and f(a,n+1,p*n))+1, a +3 byte fix.
$endgroup$
– Lynn
2 hours ago
$begingroup$
@Lynn Maybe, I'm a bit tired now. :P
$endgroup$
– Erik the Outgolfer
2 hours ago
$begingroup$
Nice solution by the way. I was working on the same method but calculating the factorial on each iteration; implementing your approach saved me a few bytes so+1anyway.
$endgroup$
– Shaggy
1 hour ago
add a comment |
$begingroup$
Python 2, 47 bytes
f=lambda a,n=1,p=1:`p`.find(a)and-~f(a,n+1,p*n)
Try it online!
Takes a string as input, like f('18').
The trick here is that x.find(y) == 0 precisely when x.startswith(y).
The and-expression will short circuit at `p`.find(a) with result 0 as soon as `p` starts with a; otherwise, it will evaluate to -~f(a,n+1,p*n), id est 1 + f(a,n+1,p*n).
The end result is 1 + (1 + (1 + (... + 0))), n layers deep, so n.
$endgroup$
1
$begingroup$
Returns0for1.
$endgroup$
– Shaggy
2 hours ago
2
$begingroup$
@Shaggy I've asked about that in the comments, because0is a pretty sensible answer if it must just be non-negative (a fix could cost up to 8 bytes).
$endgroup$
– Erik the Outgolfer
2 hours ago
1
$begingroup$
@EriktheOutgolfer hmm, I can think off=lambda a,n=2,p=1:(`p`.find(a)and f(a,n+1,p*n))+1, a +3 byte fix.
$endgroup$
– Lynn
2 hours ago
$begingroup$
@Lynn Maybe, I'm a bit tired now. :P
$endgroup$
– Erik the Outgolfer
2 hours ago
$begingroup$
Nice solution by the way. I was working on the same method but calculating the factorial on each iteration; implementing your approach saved me a few bytes so+1anyway.
$endgroup$
– Shaggy
1 hour ago
add a comment |
$begingroup$
Python 2, 47 bytes
f=lambda a,n=1,p=1:`p`.find(a)and-~f(a,n+1,p*n)
Try it online!
Takes a string as input, like f('18').
The trick here is that x.find(y) == 0 precisely when x.startswith(y).
The and-expression will short circuit at `p`.find(a) with result 0 as soon as `p` starts with a; otherwise, it will evaluate to -~f(a,n+1,p*n), id est 1 + f(a,n+1,p*n).
The end result is 1 + (1 + (1 + (... + 0))), n layers deep, so n.
$endgroup$
Python 2, 47 bytes
f=lambda a,n=1,p=1:`p`.find(a)and-~f(a,n+1,p*n)
Try it online!
Takes a string as input, like f('18').
The trick here is that x.find(y) == 0 precisely when x.startswith(y).
The and-expression will short circuit at `p`.find(a) with result 0 as soon as `p` starts with a; otherwise, it will evaluate to -~f(a,n+1,p*n), id est 1 + f(a,n+1,p*n).
The end result is 1 + (1 + (1 + (... + 0))), n layers deep, so n.
edited 2 hours ago
answered 2 hours ago
LynnLynn
51.4k899234
51.4k899234
1
$begingroup$
Returns0for1.
$endgroup$
– Shaggy
2 hours ago
2
$begingroup$
@Shaggy I've asked about that in the comments, because0is a pretty sensible answer if it must just be non-negative (a fix could cost up to 8 bytes).
$endgroup$
– Erik the Outgolfer
2 hours ago
1
$begingroup$
@EriktheOutgolfer hmm, I can think off=lambda a,n=2,p=1:(`p`.find(a)and f(a,n+1,p*n))+1, a +3 byte fix.
$endgroup$
– Lynn
2 hours ago
$begingroup$
@Lynn Maybe, I'm a bit tired now. :P
$endgroup$
– Erik the Outgolfer
2 hours ago
$begingroup$
Nice solution by the way. I was working on the same method but calculating the factorial on each iteration; implementing your approach saved me a few bytes so+1anyway.
$endgroup$
– Shaggy
1 hour ago
add a comment |
1
$begingroup$
Returns0for1.
$endgroup$
– Shaggy
2 hours ago
2
$begingroup$
@Shaggy I've asked about that in the comments, because0is a pretty sensible answer if it must just be non-negative (a fix could cost up to 8 bytes).
$endgroup$
– Erik the Outgolfer
2 hours ago
1
$begingroup$
@EriktheOutgolfer hmm, I can think off=lambda a,n=2,p=1:(`p`.find(a)and f(a,n+1,p*n))+1, a +3 byte fix.
$endgroup$
– Lynn
2 hours ago
$begingroup$
@Lynn Maybe, I'm a bit tired now. :P
$endgroup$
– Erik the Outgolfer
2 hours ago
$begingroup$
Nice solution by the way. I was working on the same method but calculating the factorial on each iteration; implementing your approach saved me a few bytes so+1anyway.
$endgroup$
– Shaggy
1 hour ago
1
1
$begingroup$
Returns
0 for 1.$endgroup$
– Shaggy
2 hours ago
$begingroup$
Returns
0 for 1.$endgroup$
– Shaggy
2 hours ago
2
2
$begingroup$
@Shaggy I've asked about that in the comments, because
0 is a pretty sensible answer if it must just be non-negative (a fix could cost up to 8 bytes).$endgroup$
– Erik the Outgolfer
2 hours ago
$begingroup$
@Shaggy I've asked about that in the comments, because
0 is a pretty sensible answer if it must just be non-negative (a fix could cost up to 8 bytes).$endgroup$
– Erik the Outgolfer
2 hours ago
1
1
$begingroup$
@EriktheOutgolfer hmm, I can think of
f=lambda a,n=2,p=1:(`p`.find(a)and f(a,n+1,p*n))+1, a +3 byte fix.$endgroup$
– Lynn
2 hours ago
$begingroup$
@EriktheOutgolfer hmm, I can think of
f=lambda a,n=2,p=1:(`p`.find(a)and f(a,n+1,p*n))+1, a +3 byte fix.$endgroup$
– Lynn
2 hours ago
$begingroup$
@Lynn Maybe, I'm a bit tired now. :P
$endgroup$
– Erik the Outgolfer
2 hours ago
$begingroup$
@Lynn Maybe, I'm a bit tired now. :P
$endgroup$
– Erik the Outgolfer
2 hours ago
$begingroup$
Nice solution by the way. I was working on the same method but calculating the factorial on each iteration; implementing your approach saved me a few bytes so
+1 anyway.$endgroup$
– Shaggy
1 hour ago
$begingroup$
Nice solution by the way. I was working on the same method but calculating the factorial on each iteration; implementing your approach saved me a few bytes so
+1 anyway.$endgroup$
– Shaggy
1 hour ago
add a comment |
$begingroup$
Jelly, 8 bytes
1!w⁼1ʋ1#
Try it online!
Takes an integer and returns a singleton.
$endgroup$
add a comment |
$begingroup$
Jelly, 8 bytes
1!w⁼1ʋ1#
Try it online!
Takes an integer and returns a singleton.
$endgroup$
add a comment |
$begingroup$
Jelly, 8 bytes
1!w⁼1ʋ1#
Try it online!
Takes an integer and returns a singleton.
$endgroup$
Jelly, 8 bytes
1!w⁼1ʋ1#
Try it online!
Takes an integer and returns a singleton.
answered 2 hours ago
Erik the OutgolferErik the Outgolfer
33.3k429106
33.3k429106
add a comment |
add a comment |
$begingroup$
JavaScript, 47 43 bytes
I/O as a BigInt.
n=>(g=x=>`${x}`.search(n)?g(x*++i):i)(i=1n)
Try It Online (The 841 test case times out on TIO)
Saved a few bytes by taking Lynn's approach of "building" the factorial rather than calculating it on each iteration so please upvote her solution as well if you're upvoting this one.
$endgroup$
$begingroup$
Sadly,_Ês bU}f1in Japt doesn't work
$endgroup$
– Embodiment of Ignorance
1 hour ago
$begingroup$
@EmbodimentofIgnorance, yeah, I had that too. You could remove the space afters.
$endgroup$
– Shaggy
1 hour ago
$begingroup$
@EmbodimentofIgnorance, you could also remove the1if0can be returned forn=1.
$endgroup$
– Shaggy
1 hour ago
add a comment |
$begingroup$
JavaScript, 47 43 bytes
I/O as a BigInt.
n=>(g=x=>`${x}`.search(n)?g(x*++i):i)(i=1n)
Try It Online (The 841 test case times out on TIO)
Saved a few bytes by taking Lynn's approach of "building" the factorial rather than calculating it on each iteration so please upvote her solution as well if you're upvoting this one.
$endgroup$
$begingroup$
Sadly,_Ês bU}f1in Japt doesn't work
$endgroup$
– Embodiment of Ignorance
1 hour ago
$begingroup$
@EmbodimentofIgnorance, yeah, I had that too. You could remove the space afters.
$endgroup$
– Shaggy
1 hour ago
$begingroup$
@EmbodimentofIgnorance, you could also remove the1if0can be returned forn=1.
$endgroup$
– Shaggy
1 hour ago
add a comment |
$begingroup$
JavaScript, 47 43 bytes
I/O as a BigInt.
n=>(g=x=>`${x}`.search(n)?g(x*++i):i)(i=1n)
Try It Online (The 841 test case times out on TIO)
Saved a few bytes by taking Lynn's approach of "building" the factorial rather than calculating it on each iteration so please upvote her solution as well if you're upvoting this one.
$endgroup$
JavaScript, 47 43 bytes
I/O as a BigInt.
n=>(g=x=>`${x}`.search(n)?g(x*++i):i)(i=1n)
Try It Online (The 841 test case times out on TIO)
Saved a few bytes by taking Lynn's approach of "building" the factorial rather than calculating it on each iteration so please upvote her solution as well if you're upvoting this one.
edited 1 hour ago
answered 2 hours ago
ShaggyShaggy
19.2k21768
19.2k21768
$begingroup$
Sadly,_Ês bU}f1in Japt doesn't work
$endgroup$
– Embodiment of Ignorance
1 hour ago
$begingroup$
@EmbodimentofIgnorance, yeah, I had that too. You could remove the space afters.
$endgroup$
– Shaggy
1 hour ago
$begingroup$
@EmbodimentofIgnorance, you could also remove the1if0can be returned forn=1.
$endgroup$
– Shaggy
1 hour ago
add a comment |
$begingroup$
Sadly,_Ês bU}f1in Japt doesn't work
$endgroup$
– Embodiment of Ignorance
1 hour ago
$begingroup$
@EmbodimentofIgnorance, yeah, I had that too. You could remove the space afters.
$endgroup$
– Shaggy
1 hour ago
$begingroup$
@EmbodimentofIgnorance, you could also remove the1if0can be returned forn=1.
$endgroup$
– Shaggy
1 hour ago
$begingroup$
Sadly,
_Ês bU}f1 in Japt doesn't work$endgroup$
– Embodiment of Ignorance
1 hour ago
$begingroup$
Sadly,
_Ês bU}f1 in Japt doesn't work$endgroup$
– Embodiment of Ignorance
1 hour ago
$begingroup$
@EmbodimentofIgnorance, yeah, I had that too. You could remove the space after
s.$endgroup$
– Shaggy
1 hour ago
$begingroup$
@EmbodimentofIgnorance, yeah, I had that too. You could remove the space after
s.$endgroup$
– Shaggy
1 hour ago
$begingroup$
@EmbodimentofIgnorance, you could also remove the
1 if 0 can be returned for n=1.$endgroup$
– Shaggy
1 hour ago
$begingroup$
@EmbodimentofIgnorance, you could also remove the
1 if 0 can be returned for n=1.$endgroup$
– Shaggy
1 hour ago
add a comment |
$begingroup$
Jelly, 16 bytes
‘ɼ!³;D®ß⁼Lḣ@¥¥/?
Try it online!
Explanation
‘ɼ | Increment the register (initially 0)
! | Factorial
³; | Prepend the input
D | Convert to decimal digits
⁼ ¥¥/? | If the input diguts are equal to...
Lḣ@ | The same number of diguts from the head of the factorial
® | Return the register
ß | Otherwise run the link again
$endgroup$
add a comment |
$begingroup$
Jelly, 16 bytes
‘ɼ!³;D®ß⁼Lḣ@¥¥/?
Try it online!
Explanation
‘ɼ | Increment the register (initially 0)
! | Factorial
³; | Prepend the input
D | Convert to decimal digits
⁼ ¥¥/? | If the input diguts are equal to...
Lḣ@ | The same number of diguts from the head of the factorial
® | Return the register
ß | Otherwise run the link again
$endgroup$
add a comment |
$begingroup$
Jelly, 16 bytes
‘ɼ!³;D®ß⁼Lḣ@¥¥/?
Try it online!
Explanation
‘ɼ | Increment the register (initially 0)
! | Factorial
³; | Prepend the input
D | Convert to decimal digits
⁼ ¥¥/? | If the input diguts are equal to...
Lḣ@ | The same number of diguts from the head of the factorial
® | Return the register
ß | Otherwise run the link again
$endgroup$
Jelly, 16 bytes
‘ɼ!³;D®ß⁼Lḣ@¥¥/?
Try it online!
Explanation
‘ɼ | Increment the register (initially 0)
! | Factorial
³; | Prepend the input
D | Convert to decimal digits
⁼ ¥¥/? | If the input diguts are equal to...
Lḣ@ | The same number of diguts from the head of the factorial
® | Return the register
ß | Otherwise run the link again
edited 2 hours ago
answered 2 hours ago
Nick KennedyNick Kennedy
1,91149
1,91149
add a comment |
add a comment |
$begingroup$
Jelly, 11 bytes
‘ɼµ®!Dw³’µ¿
Try it online!
$endgroup$
add a comment |
$begingroup$
Jelly, 11 bytes
‘ɼµ®!Dw³’µ¿
Try it online!
$endgroup$
add a comment |
$begingroup$
Jelly, 11 bytes
‘ɼµ®!Dw³’µ¿
Try it online!
$endgroup$
Jelly, 11 bytes
‘ɼµ®!Dw³’µ¿
Try it online!
edited 1 hour ago
answered 2 hours ago
HyperNeutrinoHyperNeutrino
19.1k437148
19.1k437148
add a comment |
add a comment |
$begingroup$
Python 3, 88 bytes
lambda x,a=0:str(F(a)).startswith(str(x))and a or f(x,a+1)
F=lambda x:x and x*F(x-1)or 1
Try it online!
Recursive so it dies quite quickly.
$endgroup$
$begingroup$
64 bytes
$endgroup$
– Jo King
39 mins ago
add a comment |
$begingroup$
Python 3, 88 bytes
lambda x,a=0:str(F(a)).startswith(str(x))and a or f(x,a+1)
F=lambda x:x and x*F(x-1)or 1
Try it online!
Recursive so it dies quite quickly.
$endgroup$
$begingroup$
64 bytes
$endgroup$
– Jo King
39 mins ago
add a comment |
$begingroup$
Python 3, 88 bytes
lambda x,a=0:str(F(a)).startswith(str(x))and a or f(x,a+1)
F=lambda x:x and x*F(x-1)or 1
Try it online!
Recursive so it dies quite quickly.
$endgroup$
Python 3, 88 bytes
lambda x,a=0:str(F(a)).startswith(str(x))and a or f(x,a+1)
F=lambda x:x and x*F(x-1)or 1
Try it online!
Recursive so it dies quite quickly.
edited 1 hour ago
answered 3 hours ago
HyperNeutrinoHyperNeutrino
19.1k437148
19.1k437148
$begingroup$
64 bytes
$endgroup$
– Jo King
39 mins ago
add a comment |
$begingroup$
64 bytes
$endgroup$
– Jo King
39 mins ago
$begingroup$
64 bytes
$endgroup$
– Jo King
39 mins ago
$begingroup$
64 bytes
$endgroup$
– Jo King
39 mins ago
add a comment |
$begingroup$
Pyth - 8 bytes
f!x`.!Tz
f filter. With no second arg, it searches 1.. for first truthy
! logical not, here it checks for zero
x z indexof. z is input as string
` string repr
.!T Factorial of lambda var
Try it online.
$endgroup$
add a comment |
$begingroup$
Pyth - 8 bytes
f!x`.!Tz
f filter. With no second arg, it searches 1.. for first truthy
! logical not, here it checks for zero
x z indexof. z is input as string
` string repr
.!T Factorial of lambda var
Try it online.
$endgroup$
add a comment |
$begingroup$
Pyth - 8 bytes
f!x`.!Tz
f filter. With no second arg, it searches 1.. for first truthy
! logical not, here it checks for zero
x z indexof. z is input as string
` string repr
.!T Factorial of lambda var
Try it online.
$endgroup$
Pyth - 8 bytes
f!x`.!Tz
f filter. With no second arg, it searches 1.. for first truthy
! logical not, here it checks for zero
x z indexof. z is input as string
` string repr
.!T Factorial of lambda var
Try it online.
answered 1 hour ago
MaltysenMaltysen
21.5k445117
21.5k445117
add a comment |
add a comment |
$begingroup$
Perl 6, 23 bytes
{+([*](1..*).../^$_/)}
Try it online!
Explanation
{ } # Anonymous code block
[*](1..*) # From the infinite list of factorials
... # Take up to the first element
/^$_/ # That starts with the input
+( ) # And return the length of the sequence
$endgroup$
add a comment |
$begingroup$
Perl 6, 23 bytes
{+([*](1..*).../^$_/)}
Try it online!
Explanation
{ } # Anonymous code block
[*](1..*) # From the infinite list of factorials
... # Take up to the first element
/^$_/ # That starts with the input
+( ) # And return the length of the sequence
$endgroup$
add a comment |
$begingroup$
Perl 6, 23 bytes
{+([*](1..*).../^$_/)}
Try it online!
Explanation
{ } # Anonymous code block
[*](1..*) # From the infinite list of factorials
... # Take up to the first element
/^$_/ # That starts with the input
+( ) # And return the length of the sequence
$endgroup$
Perl 6, 23 bytes
{+([*](1..*).../^$_/)}
Try it online!
Explanation
{ } # Anonymous code block
[*](1..*) # From the infinite list of factorials
... # Take up to the first element
/^$_/ # That starts with the input
+( ) # And return the length of the sequence
answered 1 hour ago
Jo KingJo King
27.6k365133
27.6k365133
add a comment |
add a comment |
$begingroup$
Charcoal, 16 bytes
⊞υ¹W⌕IΠυθ⊞υLυI⊟υ
Try it online! Link is to verbose version of code. Explanation:
⊞υ¹
Push 1 to the empty list so that it starts off with a defined product.
W⌕IΠυθ
Repeat while the input cannot be found at the beginning of the product of the list...
⊞υLυ
... push the length of the list to itself.
I⊟υ
Print the last value pushed to the list.
$endgroup$
add a comment |
$begingroup$
Charcoal, 16 bytes
⊞υ¹W⌕IΠυθ⊞υLυI⊟υ
Try it online! Link is to verbose version of code. Explanation:
⊞υ¹
Push 1 to the empty list so that it starts off with a defined product.
W⌕IΠυθ
Repeat while the input cannot be found at the beginning of the product of the list...
⊞υLυ
... push the length of the list to itself.
I⊟υ
Print the last value pushed to the list.
$endgroup$
add a comment |
$begingroup$
Charcoal, 16 bytes
⊞υ¹W⌕IΠυθ⊞υLυI⊟υ
Try it online! Link is to verbose version of code. Explanation:
⊞υ¹
Push 1 to the empty list so that it starts off with a defined product.
W⌕IΠυθ
Repeat while the input cannot be found at the beginning of the product of the list...
⊞υLυ
... push the length of the list to itself.
I⊟υ
Print the last value pushed to the list.
$endgroup$
Charcoal, 16 bytes
⊞υ¹W⌕IΠυθ⊞υLυI⊟υ
Try it online! Link is to verbose version of code. Explanation:
⊞υ¹
Push 1 to the empty list so that it starts off with a defined product.
W⌕IΠυθ
Repeat while the input cannot be found at the beginning of the product of the list...
⊞υLυ
... push the length of the list to itself.
I⊟υ
Print the last value pushed to the list.
answered 30 mins ago
NeilNeil
83.3k745179
83.3k745179
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%2f184776%2fa-note-on-n%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
4
$begingroup$
I... why did he prove that theorem? Did he just wake up one day and say "I shall solve this!" or did it serve a purpose?
$endgroup$
– Magic Octopus Urn
3 hours ago
$begingroup$
By "any A" do you mean that like using numbers in Python or
long longs in C++ is invalid?$endgroup$
– HyperNeutrino
2 hours ago
2
$begingroup$
Can we return
0for input1? Lynn's answer currently does.$endgroup$
– Erik the Outgolfer
2 hours ago
2
$begingroup$
@SolomonUcko My question is whether we're actually required to output a positive integer or not, though, that quote itself isn't really enough to specify that, and nowhere does it say that the test cases include the least possible output for each input.
$endgroup$
– Erik the Outgolfer
59 mins ago
1
$begingroup$
@SolomonUcko Yes, "positive" excludes 0, but, again, nowhere in the challenge does it say that the output must be positive. Well, technically, it does restrict the output, but you really need to see into the details to figure that out (the challenge text also uses the "N" variable), so it's not at all clear if OP actually intended to restrict the output to the positive integers or if we can output
0for input1as well.$endgroup$
– Erik the Outgolfer
53 mins ago