Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 3a330fc

Browse files
Merge pull request #1 from tehliang/Test-1
Updated isCompositeNumber
2 parents 13b7c24 + 4d12b51 commit 3a330fc

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

‎Maths/IsCompositeNumber.js

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,22 @@
99
* First few composite numbers are 4, 6, 8, 9, 10, 12, 14, 15, 16, 18, 20, .........
1010
* Every integer greater than one is either a prime number or a composite number.
1111
* The number one is a unit – it is neither prime nor composite.
12+
* Reference: https://www.geeksforgeeks.org/composite-number/
1213
*/
1314

1415
function isCompositeNumber (number) {
15-
let i = 1
16-
let count = 0
17-
while (number >= i) {
18-
if (number % i === 0) {
19-
count++
20-
}
21-
i++
22-
}
23-
if (count > 2) {
24-
return true
25-
} else {
26-
return false
16+
// Condition that can immediate skip:
17+
// Corner cases
18+
if (number <= 1) return false
19+
if (number <= 3) return false
20+
// middle five numbers in below loop
21+
if (number % 2 === 0 || number % 3 === 0) return true
22+
23+
for (let i = 5; i * i <= number; i = i + 6) {
24+
if (number % i === 0 || number % (i + 2) === 0) { return true }
2725
}
26+
27+
return false
2828
}
2929

3030
export { isCompositeNumber }

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /