Finding all factors and prime factors of a number
Correct me if I am wrong but I think your code in findprimes is checking every number to see if it is a factor and then checking every factor to see if it is prime.
Rather than doing this I suggest you want to find all the prime factors, and then making the list of all factors just comes from all the combinations of prime factors in two subsets.
When you look for the prime factors of a number you can save yourself some time buy only checking odd numbers (and 2) up to the square root of the number. Whenever you find a new prime factor reduce you target by that factor. There are more advanced algorithms that you may want to explore here
In terms of coding style you might want to change your inline comments to doc strings, remove double new lines between functions and add hyphens to your function names e.g findprimes &gt;&gt; find_primes
In terms of function names I would have expected isprime to return True or False if the number was or wasn't prime.
I've made a quick sketch of the method I am describing:
import math

def find_prime_factors(target, floor=2):
    prime_factors = []
    
    while floor == 2 and target % 2 == 0:
        target = target // 2
        prime_factors.append(2)
   
    candidate = floor + 1 if floor == 2 else floor

    while candidate &lt;= target:
        while target % candidate == 0:
            target = target // candidate
            prime_factors.append(candidate)
        candidate += 2
    return prime_factors