File tree Expand file tree Collapse file tree 2 files changed +3
-6
lines changed
lib/exercises/src/hackerrank/projecteuler
tests/unit/lib/hackerrank/projecteuler Expand file tree Collapse file tree 2 files changed +3
-6
lines changed Original file line number Diff line number Diff line change 10
10
namespace hackerrank ::projecteuler {
11
11
12
12
long long prime_factor (long long n) {
13
-
14
13
if (n < 2 ) {
15
14
throw std::invalid_argument (" n must be greater than 2" );
16
15
}
@@ -19,9 +18,9 @@ long long prime_factor(long long n) {
19
18
long long max_prime_factor;
20
19
bool mpf_initialized = false ;
21
20
22
- long long i = 2 ;
21
+ long i = 2 ;
23
22
24
- while (i <= static_cast < long long >( sqrt (divisor) )) {
23
+ while (static_cast < double >(i) <= sqrt (divisor)) {
25
24
if (0 == divisor % i) {
26
25
divisor = divisor / i;
27
26
max_prime_factor = divisor;
Original file line number Diff line number Diff line change @@ -22,14 +22,12 @@ TEST_CASE("euler003 JSON Test Cases",
22
22
json data = json::parse (f);
23
23
24
24
for (auto testcase : data) {
25
- int result = hackerrank::projecteuler::euler003 (testcase[" n" ]);
25
+ long long result = hackerrank::projecteuler::euler003 (testcase[" n" ]);
26
26
CHECK (result == testcase[" expected" ]);
27
27
}
28
28
}
29
29
30
30
TEST_CASE (" euler003 Edge Cases" , " [hackerrank] [projecteuler]" ) {
31
-
32
31
CHECK_THROWS_AS (hackerrank::projecteuler::euler003 (0 ), std::invalid_argument);
33
-
34
32
CHECK_THROWS_AS (hackerrank::projecteuler::euler003 (1 ), std::invalid_argument);
35
33
}
You can’t perform that action at this time.
0 commit comments