diff options
author | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2023-07-17 02:47:58 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-17 02:47:58 (GMT) |
commit | 9c00dc02cf87d6edecc47586a9aac1fde1517868 (patch) | |
tree | cd8251b5e1cc00b46402404b5621e99f3d9a2949 | |
parent | 0afd5305056c0be37ccaf7b367f1ea70ad9b02e3 (diff) | |
download | cpython-9c00dc02cf87d6edecc47586a9aac1fde1517868.zip cpython-9c00dc02cf87d6edecc47586a9aac1fde1517868.tar.gz cpython-9c00dc02cf87d6edecc47586a9aac1fde1517868.tar.bz2 |
[3.12] Add more recipe tests. Make the factor recipe a bit faster and clearer. (GH-106817) (GH-106818)
-rw-r--r-- | Doc/library/itertools.rst | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/Doc/library/itertools.rst b/Doc/library/itertools.rst index f885254..730736b 100644 --- a/Doc/library/itertools.rst +++ b/Doc/library/itertools.rst @@ -1049,11 +1049,10 @@ The following recipes have a more mathematical flavor: # factor(1_000_000_000_000_403) --> 1000000000000403 for prime in sieve(math.isqrt(n) + 1): while True: - quotient, remainder = divmod(n, prime) - if remainder: + if n % prime: break yield prime - n = quotient + n //= prime if n == 1: return if n > 1: @@ -1354,6 +1353,12 @@ The following recipes have a more mathematical flavor: >>> set(sieve(10_000)).isdisjoint(carmichael) True + >>> list(factor(99)) # Code example 1 + [3, 3, 11] + >>> list(factor(1_000_000_000_000_007)) # Code example 2 + [47, 59, 360620266859] + >>> list(factor(1_000_000_000_000_403)) # Code example 3 + [1000000000000403] >>> list(factor(0)) [] >>> list(factor(1)) |