/** * Zlicza czynniki pierwsze liczby * @param iValue liczba sprawdzana * @return iCont liczba pierwszych */ int ifun_CountPrime(int iValue) { int iK = 2, iCount = 0; while (iValue>1) { while (iValue%iK == 0){ iCount++; iValue /= iK; } iK++; } return iCount; } /** * Wypelnia tablice dzielnikami pierwszymi liczby * @param iValue liczba * @return iPrimeNumbersTab wypelniona tablica */ int *ifun_PrimeNumbers(int iValue) { int iSize = ifun_CountPrime(iValue); int *iPrimeNumbersTab = ifun_MakeTab(iSize); int g = sqrt(iValue); for (int i = 2, j=0; i <= g; i++) { while (iValue % i == 0) { iPrimeNumbersTab[j] = i; iValue /= i; j++; } } return iPrimeNumbersTab; }