Brilliant numbers: Difference between revisions

m
C++ - simplified code
(Added C++ solution)
m (C++ - simplified code)
Line 34:
<lang cpp>#include <algorithm>
#include <chrono>
#include <cmath>
#include <iomanip>
#include <iostream>
Line 85 ⟶ 84:
const auto& primes = primes_by_digits[p / 2];
size_t position = count + 1;
uint64_t sqrt = static_cast<uint64_t>(std::ceil(std::sqrt(power)));
uint64_t min_product = 0;
for (auto i = primes.begin(); i != primes.end(); ++i) {
Line 96 ⟶ 94:
min_product = product;
position += std::distance(i, j);
if (p1 >= sqrtp2)
break;
}
if (p1 >= sqrt)
break;
}
std::cout << "First brilliant number >= 10^" << p << " is "
Line 144 ⟶ 142:
First brilliant number >= 10^15 is 1,000,000,000,000,003 at position 2,601,913,448,897
 
Elapsed time: 0.160985167788 seconds
</pre>
 
1,777

edits