-
-
Notifications
You must be signed in to change notification settings - Fork 5.7k
Added isCompositeNumber.js #1063
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(削除) Isn't this the same as the already implemented check for "perfect numbers"? (削除ここまで)
NVM, should've read carefully.
Isn't this the same as the already implemented check for "perfect numbers"?
No, they are not the same.
From Wikipedia and the internet.
A perfect number is a positive integer equal to the sum of its positive divisors, excluding the number itself.
For instance, 6 has divisors 1, 2 and 3 (excluding itself), and 1 + 2 + 3 = 6, so 6 is a perfect number.
A composite number is a positive integer that can be formed by multiplying two smaller positive integers. Equivalently, it is a positive integer that has at least one divisor other than 1 and itself.
For example, the integer 14 is a composite number because it is the product of the two smaller integers 2 ×ばつ 7.
Example:
35 is a composite number but not a perfect number because
1 + 5 + 7 not equal to 35
while 35 has more than two factors, i.e. 1, 5, 7, 35.
Which makes 35 a composite number because 35 has more than two factors.
Updated isCompositeNumber with a different approach
Updated isCompositeNumber
Update some comment
Updated comments again
Updated IsCompositeNumber
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me. You could perhaps deduplicate the factorization code (if the current APIs aren't too clunky to use).
In my opinion, this is largely a duplication of the PrimeCheck
function. Using the fact that all prime numbers other than 2 and 3 are in the form 6n ± 1 is definitely an improvement, but it can be made on the PrimeCheck
function itself. @appgurueu?
In my opinion, this is largely a duplication of the
PrimeCheck
function. Using the fact that all prime numbers other than 2 and 3 are in the form 6n ± 1 is definitely an improvement, but it can be made on thePrimeCheck
function itself. @appgurueu?
Yes. isCompositeNumber(n)
should just be !PrimeCheck(n)
(with the exception of 1).
I think instead of duplicating the logic the 6n ± 1 improvement should be made on the PrimeCheck function itself.
So any suggestions on how can I improve the algorithm?
You should remove the isComposite function and instead make your changes to the PrimeCheck function.
You should remove the isComposite function and instead make your changes to the PrimeCheck function.
What changes should I make? I am a bit clueless... I am just proposing an algorithm to check composite numbers.
You should remove the isComposite function and instead make your changes to the PrimeCheck function.
What changes should I make? I am a bit clueless... I am just proposing an algorithm to check composite numbers.
Yes, but composite numbers are numbers that aren't prime, with the exception of one. You're thus duplicating primality sieve logic here. You should instead implement isComposite
using PrimeCheck
- or get rid of isComposite
altogether - and improve the PrimeCheck
function.
You should remove the isComposite function and instead make your changes to the PrimeCheck function.
What changes should I make? I am a bit clueless... I am just proposing an algorithm to check composite numbers.
Yes, but composite numbers are numbers that aren't prime, with the exception of one. You're thus duplicating primality sieve logic here. You should instead implement
isComposite
usingPrimeCheck
- or get rid ofisComposite
altogether - and improve thePrimeCheck
function.
Hmm, I still do not quite understand. PrimeCheck checks the prime number while the IsComposite checks the composite number. Yes, what the algo doing was reverse of each other, but the code is not the same. How can I implement PrimeCheck to check whether the number is composite using the PrimeCheck algorithm?
Hmm, I still do not quite understand. PrimeCheck checks the prime number while the IsComposite checks the composite number. Yes, what the algo doing was reverse of each other, but the code is not the same. How can I implement PrimeCheck to check whether the number is composite using the PrimeCheck algorithm?
function isComposite(number) { return number > 1 && !PrimeCheck(number) }
there you go.
Update IsCompositeNumber.js
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
Uh oh!
There was an error while loading. Please reload this page.
Open in Gitpod know more
Describe your change:
Checklist:
Example:
UserProfile.js
is allowed butuserprofile.js
,Userprofile.js
,user-Profile.js
,userProfile.js
are notFixes: #{$ISSUE_NO}
.