Square-free integers: Difference between revisions
C++ - simpler and faster without using prime sieve
SqrtNegInf (talk | contribs) m (→{{header|Raku}}: remove un-needed '*.') |
(C++ - simpler and faster without using prime sieve) |
||
Line 349:
#include <iostream>
#include <string>
using integer = uint64_t;
bool square_free(
if (n % 4 == 0)
return false;
for (integer p = 3; p * p <= n; p += 2) {
for (; n %
return false;▼
}▼
}
return true;
}
void print_square_free_numbers(
std::cout << "Square-free numbers between " << from
<< " and " << to << ":\n";
std::string line;
for (integer i = from; i <= to; ++i) {
if (square_free(
if (!line.empty())
line += ' ';
Line 382 ⟶ 384:
}
void print_square_free_count(
integer count = 0;
for (integer i = from; i <= to; ++i) {
if (square_free(
++count;
}
Line 393 ⟶ 395:
int main() {
print_square_free_numbers(
▲ print_square_free_numbers(sieve, 1000000000000LL, 1000000000145LL);
print_square_free_count(
print_square_free_count(
print_square_free_count(
print_square_free_count(
▲ print_square_free_count(sieve, 1, 1000000);
return 0;
}</lang>
▲ if (is_prime_[p/2 - 1]) {
▲ }
▲ return false;
{{out}}
|