Square-free integers: Difference between revisions

m
Reformatted to reduce line count
(added Tcl)
m (Reformatted to reduce line count)
Line 353:
using integer = uint64_t;
 
bool square_free(const sieve_of_eratosthenes& sieve, integer n) {
{
if (n % 4 == 0)
return false;
for (integer p = 3; p * p <= n; p += 2) {
{
if (sieve.is_prime(p) && n % (p * p) == 0)
return false;
Line 365 ⟶ 363:
}
 
void print_square_free_numbers(const sieve_of_eratosthenes& sieve, integer from, integer to) {
{
std::cout << "Square-free numbers between " << from
<< " and " << to << ":\n";
std::string line;
for (integer i = from; i <= to; ++i) {
if (square_free(sieve, i)) {
{
if (square_free(sieve, i))
{
if (!line.empty())
line += ' ';
line += std::to_string(i);
if (line.size() >= 80) {
{
std::cout << line << '\n';
line.clear();
Line 388 ⟶ 382:
}
 
void print_square_free_count(const sieve_of_eratosthenes& sieve, integer from, integer to) {
{
integer count = 0;
for (integer i = from; i <= to; ++i) {
{
if (square_free(sieve, i))
++count;
Line 400 ⟶ 392:
}
 
int main() {
{
sieve_of_eratosthenes sieve(1000001);
print_square_free_numbers(sieve, 1, 145);
1,777

edits