# Codebook: Shor's Algorithm

**URL:** <https://discuss.pennylane.ai/t/codebook-shors-algorithm/4989>\
**Category:** Codebook\
**Created:** [July 29, 2024, 7:16pm UTC](https://discuss.pennylane.ai/t/codebook-shors-algorithm/4989 "2024-07-29T19:16:48Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![CatalinaAlbornoz](https://yyz2.discourse-cdn.com/flex012/user_avatar/discuss.pennylane.ai/catalinaalbornoz/32/1196_2.png) [@CatalinaAlbornoz](https://discuss.pennylane.ai/u/CatalinaAlbornoz)\
**Post date:** [July 29, 2024, 7:16pm UTC](https://discuss.pennylane.ai/t/codebook-shors-algorithm/4989/1 "2024-07-29T19:16:48Z")

</div>

Ask here about the [“Shor’s Algorithm” Codebook topic](https://pennylane.ai/codebook/10-shors-algorithm/04-shors-algorithm/) from the “Shor’s Algorithm” module.

---

<div class="post-metadata">

**Author:** ![yoshypdf](https://yyz2.discourse-cdn.com/flex012/user_avatar/discuss.pennylane.ai/yoshypdf/32/2818_2.png) [@yoshypdf](https://discuss.pennylane.ai/u/yoshypdf)\
**Post date:** [August 9, 2024, 9:13am UTC](https://discuss.pennylane.ai/t/codebook-shors-algorithm/4989/2 "2024-08-09T09:13:28Z")

</div>

Hello  
I find my implementation of shor algo to be a bit verbose. I wonder if there is a more elegant way to write the nested loops ?

---

<div class="post-metadata">

**Author:** ![CatalinaAlbornoz](https://yyz2.discourse-cdn.com/flex012/user_avatar/discuss.pennylane.ai/catalinaalbornoz/32/1196_2.png) [@CatalinaAlbornoz](https://discuss.pennylane.ai/u/CatalinaAlbornoz)\
**Post date:** [August 9, 2024, 8:54pm UTC](https://discuss.pennylane.ai/t/codebook-shors-algorithm/4989/3 "2024-08-09T20:54:56Z")

</div>

Hi @yoshypdf ,

Our solution doesn’t use nested loops. Just a while loop and a couple of `if` statements.

Good motivation to keep exploring other ways to solve it! 😃

---

<div class="post-metadata">

**Author:** ![johananasBeere](https://yyz2.discourse-cdn.com/flex012/user_avatar/discuss.pennylane.ai/johananasbeere/32/3566_2.png) [@johananasBeere](https://discuss.pennylane.ai/u/johananasBeere)\
**Post date:** [February 10, 2025, 10:09am UTC](https://discuss.pennylane.ai/t/codebook-shors-algorithm/4989/4 "2025-02-10T10:09:44Z")

</div>

Hej 🙂  
I thought I implemented Shor exactly the way you guy stated in your flow chart, and it also prints me the right results. What I am overlooking?

 ![shor](https://canada1.discourse-cdn.com/flex012/uploads/pennylane/original/2X/c/c27888ce76e66ca36be0857e006d77d9aa609edb.png)  
Thanks in advance for every answer! ❤

---

<div class="post-metadata">

**Author:** ![CatalinaAlbornoz](https://yyz2.discourse-cdn.com/flex012/user_avatar/discuss.pennylane.ai/catalinaalbornoz/32/1196_2.png) [@CatalinaAlbornoz](https://discuss.pennylane.ai/u/CatalinaAlbornoz)\
**Post date:** [February 11, 2025, 11:42pm UTC](https://discuss.pennylane.ai/t/codebook-shors-algorithm/4989/5 "2025-02-11T23:42:49Z")

</div>

Hi @johananasBeere , welcome to the Forum!

It looks like your code doesn’t produce the right result every single time. If you run your code a few times and print the output you’ll see that your output “p” and “q” sometimes don’t actually correspond to the prime factors for N. You can test this for small values of N such as 15 or 21.

This might help you find where you might need to change your algorithm.
