Generate a Python program that has the following intention:

The intention of the program is to find all the prime factors of a given number n. The function p1(n) first checks if n is 1, in which case it returns an empty list. This is because 1 is not a prime number and has no prime factors.

If n is not 1, the function then starts from i = 2 and loops until i is less than or equal to the square root of n + 1. This is a common way to find the largest prime factor of a number. The function then checks if n is evenly divisible by i. If it is, it means that i is a prime factor of n.

The function then recursively calls p1(n // i), which finds the prime factors of the number n divided by i. This ensures that all the prime factors of n are found.

Finally, the function returns a list containing i and the list of prime factors found by the recursive call.

Overall, the program is a simple and efficient implementation of the naive approach to finding all the prime factors of a number. Please reply with exactly 4 paragraphs and separate each paragraph with two new lines. The very first paragraph must start with the word "action".
user