Factoring Odd Integers without Multiplication and Division

Reading time: 5 minute
...

📝 Original Info

  • Title: Factoring Odd Integers without Multiplication and Division
  • ArXiv ID: 1703.00372
  • Date: 2017-03-02
  • Authors: ** Charles Sauerbier **

📝 Abstract

A method of determining two factors of an odd integer without need of multiplication or division operation in iterative portion of computation is presented. It is feasible for an implementing algorithm to use only integer addition and subtraction throughout. Presentation of material is non-theoretical; intended to be accessible to a broader audience of non academic and theoretical practitioners.

💡 Deep Analysis

📄 Full Content

©2016 charles sauerbier, all rights reserved. Page 1 of 6

Factoring Odd Integers without Multiplication and Division Charles Sauerbier 1 Introduction Factoring of integers is a problem with a long history. The Sieve of Eratosthenes is perhaps the oldest know method. A number of methods1 for factoring of integer have since been developed. A method is interesting in the absence of need for multiplication and division in iterative component of the algorithm is presented. It can be used to determine if an integer is a prime, as the computation will not encounter a halting state at other than parameters that produce the original integer and 1. The method arose from empirical observation and reasoning of relations from what was observed, as opposed to theorizing a means on basis of prior knowledge or approach used by others.
This paper takes a less than conventional approach to presentation of the material. It is assumed the reader has familiarity with the underlying basic mathematics. The provided derivation follows from basic mathematical principles, so no proofs are provided. 2 Diophantine Expression It is a property of integers that given some integer 𝑛 there exists two integers, 𝑝 and 𝑞, such that 𝑛= 𝑝∗𝑞, where 0 < 𝑝≤𝑛 and 0 < 𝑞≤𝑛. If 𝑛 is even then one solution is for 𝑝= 2 and 𝑞= 𝑛2 ⁄ .
Similarly should 𝑞 be an even integer then 𝑞 has 2 as a factor. What complicates factoring is determining values for 𝑝 and 𝑞 where 𝑛 is an odd integer. The odd integers are not all multiples of a single integer value, as is the case for even integers. However, every odd integer 𝑥 can be expressed as 𝑥= 2𝑦+ 1, for some 𝑦 such that 0 ≤𝑦≤(𝑥−1) 2 ⁄ . Considering only the case of factoring odd integers the set of equations in [2.1] is obtained. [2.1] 𝑛= 𝑝∗𝑞

𝑛= 2𝑎+ 1

𝑝= 2𝑏+ 1

𝑞= 2𝑐+ 1 The equations for 𝑝 and 𝑞 are consequence of the set of odd integers being closed under multiplication. Using the equations of [2.1] a linear Diophantine equation in two unknowns, 𝑏 and 𝑐, is obtained. The derivation is in [2.2].

2010 Mathematic Subject Classification: Primary: 11Y05, 11Y16 Secondary: 65Q10, 65Y20, 68Q17, 03D17
1 See [2]

©2016 charles sauerbier, all rights reserved. Page 2 of 6

[2.2] 𝑛= 2𝑎+ 1 = (2𝑏+ 1) ∗(2𝑐+ 1)

2𝑎+ 1 = 4𝑏𝑐+ 2𝑏+ 2𝑐+ 1

2𝑎= 4𝑏𝑐+ 2𝑏+ 2𝑐

𝑎= 2𝑏𝑐+ 𝑏+ 𝑐

0 = 2𝑏𝑐+ 𝑏+ 𝑐−𝑎 Solved for the integer roots the last expression in [2.2] allows the determination of the factors of 𝑛 where 𝑏 and 𝑐 are substituted back into the respective equations for 𝑝 and 𝑞 in [2.1]. Conjecture 2.1 The upper bound on complexity for determining the integer roots of 0 = 2𝑏𝑐+ 𝑏+ 𝑐−𝑎 is of the order 𝑂((log2 𝑛)ℎ), where ℎ is not dependent on 𝑛.
3 Difference Expressions Given two initial values for 𝑏 and 𝑐 it is possible to adjust the values of each to approximate 𝑎. A system of equations to allow iterative approximation of [2.2] is presented in [2.3]. Iteration stops where 𝑦𝑘= 0. [2.3] 𝑎= (𝑛−1) 2 ⁄

𝑏0 = 𝑐0 = ⌊√𝑎2 ⁄ ⌋

𝑦𝑘= |(2𝑏𝑘𝑐𝑘+ 𝑏𝑘+ 𝑐𝑘) −𝑎|

𝑏𝑘= { 𝑏𝑘−1, 2𝑏𝑘−1 ≤𝑦𝑘−1 𝑏𝑘−1 −1, 2𝑏𝑘−1 > 𝑦𝑘−1

𝑐𝑘= 𝑐𝑘+ 1 4 Removing Multiplication It is possible to remove the multiplication operation in the iteration process. Transformation of the expression for 𝑦𝑘 for case where 2𝑏𝑘−1 < |𝑦𝑘−1| is shown in [2.4], with case where 2𝑏𝑘−1 ≥|𝑦𝑘−1| shown in [2.5].

©2016 charles sauerbier, all rights reserved. Page 3 of 6

[2.4] 𝑏𝑘= 𝑏𝑘−1

𝑐𝑘= 𝑐𝑘−1 + 1

𝑦𝑘= (2𝑏𝑘𝑐𝑘+ 𝑏𝑘+ 𝑐𝑘)

𝑦𝑘= (2𝑏𝑘−1(𝑐𝑘−1 + 1) + 𝑏𝑘−1 + (𝑐𝑘−1 + 1))

𝑦𝑘= (2𝑏𝑘−1𝑐𝑘−1 + 2𝑏𝑘−1 + 𝑏𝑘−1 + 𝑐𝑘−1 + 1)

𝑦𝑘= (2𝑏𝑘−1𝑐𝑘−1 + 𝑏𝑘−1 + 𝑐𝑘−1) + (2𝑏𝑘−1 + 1)

𝑦𝑘= 𝑦𝑘−1 + (2𝑏𝑘−1 + 1)

𝑦𝑘= 𝑦𝑘−1 + (2𝑏𝑘+ 1)

𝑦𝑘= 𝑦𝑘−1 + (𝑏𝑘+ 𝑏𝑘+ 1)

[2.5] 𝑏𝑘= 𝑏𝑘−1 −1

𝑐𝑘= 𝑐𝑘−1 + 1

𝑦𝑘= (2𝑏𝑘𝑐𝑘+ 𝑏𝑘+ 𝑐𝑘)

𝑦𝑘= (2(𝑏𝑘−1 −1)(𝑐𝑘−1 + 1) + (𝑏𝑘−1 −1) + (𝑐𝑘−1 + 1))

𝑦𝑘= 2(𝑏𝑘−1𝑐𝑘−1 + 𝑏𝑘−1 −𝑐𝑘−1 −1) + 𝑏𝑘−1 + 𝑐𝑘−1

𝑦𝑘= 2𝑏𝑘−1𝑐𝑘−1 + 2𝑏𝑘−1 −2𝑐𝑘−1 −2 + 𝑏𝑘−1 + 𝑐𝑘−1

𝑦𝑘= (2𝑏𝑘−1𝑐𝑘−1 + 𝑏𝑘−1 + 𝑐𝑘−1) + (2𝑏𝑘−1 −2𝑐𝑘−1 −2)

𝑦𝑘= 𝑦𝑘−1 + 2((𝑏𝑘+ 1) −(𝑐𝑘−1) −1)

𝑦𝑘= 𝑦𝑘−1 + 2(𝑏𝑘+ 1 −𝑐𝑘+ 1 −1)

𝑦𝑘= 𝑦𝑘−1 + 2(𝑏𝑘−𝑐𝑘+ 1) The last expression in [2.4] and [2.5], respectively, allows the elimination of multiplication by reduction to simple addition of respective values. The expression for 𝑦𝑘, using the last expression of [2.4] and [2.5], respectively, is presented in [2.6]. [2.6] 𝑦0 = |(2𝑏0𝑐0 + 𝑏0 + 𝑐0) −𝑎|

𝑦𝑘= { y𝑘−1 + (2𝑏𝑘+ 1), 2𝑏𝑘−1 < |𝑦𝑘−1| y𝑘−1 + 2(𝑏𝑘−𝑐𝑘+ 1), 2𝑏𝑘−1 ≥|𝑦𝑘−1| The set of computations in [2.3] are restated in [2.7] modified to include [2.6].

©2016 charles sauerbier, all rights reserved. Page 4 of 6

[2.7] 𝑎= (𝑛−1) 2 ⁄

𝑏0 = 𝑐0 = ⌊√𝑥2 ⁄ ⌋

𝑦0 = |(2𝑏0𝑐0 + 𝑏0 + 𝑐0) −𝑎|

𝑦𝑘= { y𝑘−1 + (2𝑏𝑘+ 1), 2𝑏𝑘−1 < |𝑦𝑘−1| y𝑘−1 + 2(𝑏𝑘−𝑐𝑘+ 1), 2𝑏𝑘−1 ≥|𝑦𝑘−1|

𝑏𝑘= { 𝑏𝑘−1, 2𝑏𝑘−1 < |𝑦𝑘−1| 𝑏𝑘−1 −1, 2𝑏𝑘−1 ≥|𝑦𝑘−1|

𝑐𝑘= 𝑐𝑘+ 1 The equations of [2.7] provide means to determine factors of an integer 𝑛 by iteration using only integer arithmetic opera

Reference

This content is AI-processed based on open access ArXiv data.

Start searching

Enter keywords to search articles

↑↓
ESC
⌘K Shortcut