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 --]
next prev parent 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