qiskit-documentation/docs/api/qiskit/0.31/qiskit.algorithms.Shor.mdx

103 lines
3.1 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: Shor (v0.31)
description: API reference for qiskit.algorithms.Shor in qiskit v0.31
in_page_toc_min_heading_level: 1
python_api_type: class
python_api_name: qiskit.algorithms.Shor
---
# Shor
<Class id="qiskit.algorithms.Shor" isDedicatedPage={true} github="https://github.com/qiskit/qiskit/tree/stable/0.18/qiskit/algorithms/factorizers/shor.py" signature="Shor(quantum_instance=None)" modifiers="class">
Bases: `object`
Shors factoring algorithm.
Shors Factoring algorithm is one of the most well-known quantum algorithms and finds the prime factors for input integer $N$ in polynomial time.
Adapted from [https://github.com/ttlion/ShorAlgQiskit](https://github.com/ttlion/ShorAlgQiskit)
See also [https://arxiv.org/abs/quant-ph/0205095](https://arxiv.org/abs/quant-ph/0205095)
**Parameters**
**quantum\_instance** (`Union`\[`QuantumInstance`, `BaseBackend`, `Backend`, `None`]) Quantum Instance or Backend
## Methods
<span id="qiskit-algorithms-shor-construct-circuit" />
### construct\_circuit
<Function id="qiskit.algorithms.Shor.construct_circuit" signature="Shor.construct_circuit(N, a=2, measurement=False)">
Construct quantum part of the algorithm.
**Parameters**
* **N** (`int`) The odd integer to be factored, has a min. value of 3.
* **a** (`int`) Any integer that satisfies 1 \< a \< N and gcd(a, N) = 1.
* **measurement** (`bool`) Boolean flag to indicate if measurement should be included in the circuit.
**Return type**
`QuantumCircuit`
**Returns**
Quantum circuit.
</Function>
<span id="qiskit-algorithms-shor-factor" />
### factor
<Function id="qiskit.algorithms.Shor.factor" signature="Shor.factor(N, a=2)">
Execute the algorithm.
The input integer $N$ to be factored is expected to be odd and greater than 2. Even though this implementation is general, its capability will be limited by the capacity of the simulator/hardware. Another input integer $a$ can also be supplied, which needs to be a co-prime smaller than $N$ .
**Parameters**
* **N** (`int`) The odd integer to be factored, has a min. value of 3.
* **a** (`int`) Any integer that satisfies 1 \< a \< N and gcd(a, N) = 1.
**Returns**
results of the algorithm.
**Return type**
[ShorResult](qiskit.algorithms.ShorResult "qiskit.algorithms.ShorResult")
**Raises**
* **ValueError** Invalid input
* [**AlgorithmError**](qiskit.algorithms.AlgorithmError "qiskit.algorithms.AlgorithmError") If a quantum instance or backend has not been provided
</Function>
<span id="qiskit-algorithms-shor-modinv" />
### modinv
<Function id="qiskit.algorithms.Shor.modinv" signature="Shor.modinv(a, m)" modifiers="static">
Returns the modular multiplicative inverse of a with respect to the modulus m.
**Return type**
`int`
</Function>
## Attributes
### quantum\_instance
<Attribute id="qiskit.algorithms.Shor.quantum_instance">
Returns quantum instance.
**Return type**
`Optional`\[`QuantumInstance`]
</Attribute>
</Class>