Warning: mysqli::__construct(): (HY000/1203): User howardkn already has more than 'max_user_connections' active connections in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\includes\artfuncs.php on line 21
Failed to connect to MySQL: (1203) User howardkn already has more than 'max_user_connections' active connections
Warning: mysqli::query(): Couldn't fetch mysqli in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\index.php on line 66
Article <v9o3q1$1h24f$1@raubtier-asyl.eternal-september.org>
Deutsch   English   Français   Italiano  
<v9o3q1$1h24f$1@raubtier-asyl.eternal-september.org>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!news.nobody.at!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!raubtier-asyl.eternal-september.org!.POSTED!not-for-mail
From: Bonita Montero <Bonita.Montero@gmail.com>
Newsgroups: comp.lang.c++
Subject: Re: OT: Re: Sieve of Erastosthenes optimized to the max
Date: Fri, 16 Aug 2024 19:55:13 +0200
Organization: A noiseless patient Spider
Lines: 46
Message-ID: <v9o3q1$1h24f$1@raubtier-asyl.eternal-september.org>
References: <ul41d4$2koct$1@raubtier-asyl.eternal-september.org>
 <utoh9d$6lrr$1@raubtier-asyl.eternal-september.org>
 <utq0ag$hvrl$3@dont-email.me>
 <utq0os$ibqn$1@raubtier-asyl.eternal-september.org>
 <utq11p$icmm$1@dont-email.me> <v25c87$1ld9m$1@dont-email.me>
 <86r0duwqgg.fsf@linuxsc.com> <v39o3l$1lvju$1@dont-email.me>
 <86o78mpnlf.fsf@linuxsc.com> <v3fv2u$2ursd$1@dont-email.me>
 <86ttibod7n.fsf@linuxsc.com> <86h6eaoi2r.fsf@linuxsc.com>
 <v4sool$1grge$1@dont-email.me> <867celixcw.fsf@linuxsc.com>
 <v5sg9s$mat4$1@dont-email.me> <86zfr0b9hw.fsf@linuxsc.com>
 <v638ud$25623$1@dont-email.me> <861q3o5do1.fsf@linuxsc.com>
 <v7tdts$29195$1@dont-email.me> <868qx45v5g.fsf@linuxsc.com>
 <v9lbns$11alj$1@dont-email.me> <86r0aojx1m.fsf@linuxsc.com>
 <v9o2kf$1gqv1$1@raubtier-asyl.eternal-september.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Fri, 16 Aug 2024 19:55:18 +0200 (CEST)
Injection-Info: raubtier-asyl.eternal-september.org; posting-host="0ce01068ee5bc70359191bd6d34fff1b";
	logging-data="1607823"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1/l37+m1SGzaiZFESsljusWhg3J8oymZC4="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:zKDP4KQUH8EiLtYtepIKCvX9v/E=
Content-Language: de-DE
In-Reply-To: <v9o2kf$1gqv1$1@raubtier-asyl.eternal-september.org>
Bytes: 3385

Am 16.08.2024 um 19:35 schrieb Bonita Montero:

> But basically I don't think it is a good idea to skip numbers exept
> multiples of two. With the three you save a sixth of memory, with
> the five you save a 15-th and at the end you get about 20% less
> storage (1 / (2 * 3) + 1 / (2 * 3 * 5) + 1 / (2 * 3 * 5 * 7) ...)
> for a lot of computation. That's the point where I dropped this
> idea and I think this extra computation is higher than the time
> for the saved memory loads.
> 

This calculates the percentage of the memory-access-savings:

#include <iostream>
#include <span>
#include <algorithm>

using namespace std;

int main()
{
	static unsigned const rawPrimes[] =
	{
		2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 
67, 71,
		73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151,
		157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233,
		239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317,
		331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419,
		421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503,
		509, 521, 523, 541
	};
	span primes( rawPrimes );
	double sum = 0.0;
	auto
		rEnd = primes.rend(),
		cur = rEnd - 2;
	do
	{
		double add = 1.0;
		for_each( cur, rEnd, [&]( int p )
			{ add /= p; } );
		sum += add;
	} while( --cur != primes.rbegin() );
	cout << 100 * sum << "%" << endl;
}