why does this function work ``` function is_composite(n){ return "1".repeat(n).match(/^1?$|^(11+?)\1+$/); } ``` https://jsfiddle.net/dy8t4vou/
@ParthKohli
or anyone
woah lol what is that so cool
what language?
javascript, try it in ur browser console
should be `\( \)`
don't really know what you are trying to make it look like if it is a latex question....
dang that looks so beautiful haha, i wish i knew what that syntax meant
i can't help. don't really get the result you desire to get.
screen shot or pic? (you can quite well draw it in colors and everything else with wio's extension for chrome which I am sure you have heard about...)
whatever. won't interrupt.
|dw:1435258573923:dw|
@SolomonZelman
how much of the syntax are u able to understand?
you want to make that picture \(\normalsize\color{blue}{ 4 }\) \(\normalsize\color{blue}{ ^\text{______________________________________} }\) \(\normalsize\color{blue}{ 6 }\) \(\normalsize\color{blue}{ ^\text{______________________________________} }\) \(\normalsize\color{blue}{ 8 }\) \(\normalsize\color{blue}{ ^\text{______________________________________} }\) \(\normalsize\color{blue}{ 9 }\) \(\normalsize\color{blue}{ ^\text{______________________________________} }\) \(\normalsize\color{blue}{ 10 }\) \(\normalsize\color{blue}{ ^\text{______________________________________} }\) \(\normalsize\color{blue}{ 12 }\) \(\normalsize\color{blue}{ ^\text{______________________________________} }\) ??
I'm able to follow it till "why does this function work"
(I am not very good at this)
lool
Haha typical programmer from math background
It's just a function that takes parameter "n" and returns "1" if the function is composite and "0" if it's not, i.e., it's prime.
You got it! you're ready to use the function !
Looks like it checks if it contains certain keywords in its binary representation.
thats very close, it actually converts the given number into unary number system
Or hex representation? I don't know.
Oh, unary...
5 = 11111 3 = 111 etc
"1".repeat(n) produces a string of "n" ones
All the percentages and pluses and question-marks... oh dear.
for simplicty, we can condence it further. below also works for n > 1 : ``` function is_composite(n){ return "1".repeat(n).match(/^(11+)\1+$/); } ```
The problem is that I don't really know what that is. What I think here is that you should first generate the number (parameter n) by repeating 1 'n' times, then start a number that is not 1 or the number itself, keep repeating it and reach the parameter. If such a number exists, then the thing is composite.
Like it should definitely be a loop, but I don't know where it mentions it being a loop. What I see is that the .match is attached to the .repeat so does the .repeat function tell it to repeat or what?
consider an example in unary system `1111` is composite becuase it can be split as `11 11`
`11111` is not composite because it cannot be split as 2 ones or 3 ones or 4 ones groups
Yeah, makes sense. Where does it say that in the program? :|
match() is a string matching function
it returns the match if it finds even groups of (11)+ otherwise it returns null
? looks like it's a conditional operator.
for example : "parthkohli".match(/java/) returns null
"parthkohli".match(/art/) returns true
OK, I gotcha. Of course. This thing is looping over the size of the groups, right? So I'm sort of understanding this thing. I guess it says something like, "does it form even groups of this size? If not, proceed to the next size." Is that what (11)+ means?
`11+` I mean
Exactly!
\(a+\) means 1 or more occurrences of \(a\)
`/^1?$|^(11+?)\1+$/` Could you walk us through each and every symbol above? Also, please do it quickly, because my battery is gonna finish in 10 minutes...
lets look at the condensed expression `/^(11+?)\1+$/`
`^` matches start of string `$` matches end of string
`11+?` matches "two" or more occurrences of "1"
`\1` backreferences the previous matched stuff in a parenthesis : `(11+?)`
look up "regular expressions" for more details their syntax mostly same in almost all programming languages
That is amazing. Wow.
OK, good night then. Laterz.
gnite!
Join our real-time social learning platform and learn together with your friends!