Skip to content

Commit a0987c5

Browse files
Micro optimization on trial division
1 parent e3aebb9 commit a0987c5

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

FindAFactor/_find_a_factor.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -837,8 +837,13 @@ struct Factorizer {
837837
}
838838
num /= factor;
839839
for (size_t pi = 0U; pi < primes.size(); ++pi) {
840-
if (!(factor % primes[pi])) {
840+
const BigInteger& p = primes[pi];
841+
if (!(factor % p)) {
842+
factor /= p;
841843
vec[pi] = !vec[pi];
844+
if (factor == 1U) {
845+
break;
846+
}
842847
}
843848
}
844849
if (num == 1U) {

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626

2727
setup(
2828
name='FindAFactor',
29-
version='3.6.2',
29+
version='3.6.3',
3030
author='Dan Strano',
3131
author_email='dan@unitary.fund',
3232
description='Find any nontrivial factor of a number',

0 commit comments

Comments
 (0)