Distinct primes factors
The first two consecutive numbers to have two distinct prime factors are:
14 = 2 × 7
15 = 3 × 5
The first three consecutive numbers to have three distinct prime factors are:15 = 3 × 5
644 = 2² × 7 × 23
645 = 3 × 5 × 43
646 = 2 × 17 × 19.
Find the first four consecutive integers to have four distinct prime factors. What is the first of these numbers?645 = 3 × 5 × 43
646 = 2 × 17 × 19.
I have written a direct solution for this problem. Solution which you can see below, uses prime factorization as the base concept. All the remaining things are simple and easy.
You can see further explanation in the program section.
Program
We have creatednpf
function an abbreviation for Number of Prime Factors. This function will return the number of prime factors. npf
follows the traditional Factor Tree method with a little modification. Usually with the factor tree method we will have to loop till the end of the number is reached. But one can find that there is only one prime factor after the square root of the given number. So we will simplify our looping till the square root of the number and add 1 to the final solution.j = 2*3*5*7
We are starting with this number because, this is the minimum number that can be formed.
At the end we are creating a infinite
while
loop. This loop will break only when we have found our required result.I suggest that you can consider an example and substitute the values in the variables to understand the program easily.
You can download the source code from Github gist pep47.py
Output
Summary
After a little modification I have arrived at this solution. Even though I am not satisfied with the execution time, I don't have any other idea on how to optimize the code. I think one can work some more to improve this solution. Discussions are welcome.As always if you have any doubt or didn't understand anything, comment in the comment box below and I will be glad to help you.
Please do comment if you have found a typo or have a better program or have a different program. Please do comment if you have any suggestion. I will be very happy to view each of them.
You can also contact me.
Thank you. Have a nice day😃!