Generate a Python program that has the following intention:

The intention of the program below is to find all prime factors of a given positive integer n. The function p1(n) takes a positive integer n as its argument and returns a list of prime factors of n.

The function uses an iterative approach to identify prime factors of n. It starts by checking if n is equal to 1, in which case it returns an empty list. If n is not equal to 1, it checks if n is even, and if so, it divides n by 2. If n is odd, it checks if n is divisible by any number in the range of 2 to int(n**0.5) - 1. If n is divisible by a number i, the function returns [i] concatenated with the result of calling p1(n // i). If no divisors are found in the given range, the function returns [n].