Хм. str_repeat полностью сбивает с толку - это очень интересное решение) но совершенно не адекватное.
Для хранения списка простых чисел - используйте массив (array) этих самых чисел :)
Лучше вооружитесь книжкой по языку и возьмите самый тупой алгоритм разложения на простые множители - тот в котором делим (если делится, конечно) число на все числа начиная с 2, пока оно не станет равным 1.
А понять, где у вас не правильно вы можете сами - выберите число поменьше и реализуйте ваш алгоритм сами на бумажке.