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