public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: Ulrich Mueller <ulm@gentoo.org>
To: Rolf Eike Beer <eike@sf-mail.de>
Cc: gentoo-dev@lists.gentoo.org
Subject: Re: [gentoo-dev] [PATCH 3/5] qmail.eclass: simplify is_prime()
Date: Thu, 12 Aug 2021 13:25:09 +0200	[thread overview]
Message-ID: <ur1eynbvu@gentoo.org> (raw)
In-Reply-To: <4644122.GXAFRqVoOG@eto.sf-tec.de> (Rolf Eike Beer's message of "Thu, 12 Aug 2021 11:55:41 +0200")

[-- Attachment #1: Type: text/plain, Size: 1370 bytes --]

>>>>> On Thu, 12 Aug 2021, Rolf Eike Beer wrote:

> -# @FUNCTION: primes
> -# @USAGE: <min> <max>
> +# @FUNCTION: is_prime
> +# @USAGE: <number>
>  # @DESCRIPTION:
> -# Prints a list of primes between min and max inclusive
> -# Note: this functions gets very slow when used with large numbers.
> -primes() {
> -	local min=${1} max=${2}
> -	local result= primelist=2 i p
> +# Checks wether a number is a valid prime number for queue split
> +is_prime() {
> +	local number=${1} i
> +
> +	if [[ ${number} < 7 ]]; then
> +		# too small
> +		return 0
> +	fi

So e.g. all numbers between 100 and 699 qualify as primes? I doubt that
this is what was intended. :)

>  
> -	[[ ${min} -le 2 ]] && result="${result} 2"
> +	if [[ $[number % 2] == 0 ]]; then
> +		return 1
> +	fi
>  
> -	for ((i = 3; i <= max; i += 2))
> +	# let i run up to the square root of number
> +	for ((i = 3; i * i <= number; i += 2))
>  	do
> -		for p in ${primelist}
> -		do
> -			[[ $[i % p] == 0 || $[p * p] -gt ${i} ]] && \
> -				break
> -		done
> -		if [[ $[i % p] != 0 ]]
> -		then
> -			primelist="${primelist} ${i}"
> -			[[ ${i} -ge ${min} ]] && \
> -				result="${result} ${i}"
> +		if [[ $[number % i ] == 0 ]]; then
> +			return 1
>  		fi
>  	done
>  
> -	echo ${result}
> -}

This function asks for a unit test in eclass/tests/.

Ulrich

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 507 bytes --]

  reply	other threads:[~2021-08-12 11:25 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-12  9:54 [gentoo-dev] [PATCH 1/3] qmail.eclass: support EAPI 8 Rolf Eike Beer
2021-08-12  9:55 ` [gentoo-dev] [PATCH 2/3] qmail.eclass: hardcode root group Rolf Eike Beer
2021-08-12 11:13   ` Ulrich Mueller
2021-08-12 14:03     ` Rolf Eike Beer
2021-08-12 15:22   ` [gentoo-dev] [PATCH 2/3] qmail.eclass: remove magic to query " Rolf Eike Beer
2021-08-12 17:39     ` Michael Orlitzky
2021-08-13  7:17       ` Rolf Eike Beer
2021-08-13  9:06         ` Ulrich Mueller
2021-08-13 10:31           ` Rolf Eike Beer
2021-08-14 10:43             ` David Seifert
2021-08-14  9:36   ` [gentoo-dev] [PATCH 2/3 v3] " Rolf Eike Beer
2021-08-14 10:52     ` Ulrich Mueller
2021-08-14 11:11       ` Rolf Eike Beer
2021-08-14 11:54         ` Ulrich Mueller
2021-08-14 11:34   ` [gentoo-dev] [PATCH 2/3 v4] " Rolf Eike Beer
2021-08-12  9:55 ` [gentoo-dev] [PATCH 3/5] qmail.eclass: simplify is_prime() Rolf Eike Beer
2021-08-12 11:25   ` Ulrich Mueller [this message]
2021-08-12 15:25     ` Rolf Eike Beer
2021-08-12 15:25   ` [gentoo-dev] [PATCH 3/3] " Rolf Eike Beer
2021-08-13  7:47 ` [gentoo-dev] [PATCH 4/3] qmail.eclass: remove needless keepdirs Rolf Eike Beer
2021-08-14 11:47   ` [gentoo-dev] [PATCH 4/3 v2] " Rolf Eike Beer
2021-08-13 10:44 ` [gentoo-dev] [PATCH 5/3] qmail.eclass: retire qmail_tcprules_fixup() Rolf Eike Beer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ur1eynbvu@gentoo.org \
    --to=ulm@gentoo.org \
    --cc=eike@sf-mail.de \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox