Skip to content

Commit 2d55381

Browse files
author
Gonzalo Diaz
committed
[Hacker Rank]: Project Euler #3: Largest prime factor. Solved ✓
1 parent 1e402c2 commit 2d55381

File tree

2 files changed

+3
-6
lines changed

2 files changed

+3
-6
lines changed

src/lib/exercises/src/hackerrank/projecteuler/euler003.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
namespace hackerrank::projecteuler {
1111

1212
long long prime_factor(long long n) {
13-
1413
if (n < 2) {
1514
throw std::invalid_argument("n must be greater than 2");
1615
}
@@ -19,9 +18,9 @@ long long prime_factor(long long n) {
1918
long long max_prime_factor;
2019
bool mpf_initialized = false;
2120

22-
long long i = 2;
21+
long i = 2;
2322

24-
while (i <= static_cast<long long>(sqrt(divisor))) {
23+
while (static_cast<double>(i) <= sqrt(divisor)) {
2524
if (0 == divisor % i) {
2625
divisor = divisor / i;
2726
max_prime_factor = divisor;

src/tests/unit/lib/hackerrank/projecteuler/euler003.test.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,12 @@ TEST_CASE("euler003 JSON Test Cases",
2222
json data = json::parse(f);
2323

2424
for (auto testcase : data) {
25-
int result = hackerrank::projecteuler::euler003(testcase["n"]);
25+
long long result = hackerrank::projecteuler::euler003(testcase["n"]);
2626
CHECK(result == testcase["expected"]);
2727
}
2828
}
2929

3030
TEST_CASE("euler003 Edge Cases", "[hackerrank] [projecteuler]") {
31-
3231
CHECK_THROWS_AS(hackerrank::projecteuler::euler003(0), std::invalid_argument);
33-
3432
CHECK_THROWS_AS(hackerrank::projecteuler::euler003(1), std::invalid_argument);
3533
}

0 commit comments

Comments
 (0)