Witam !!

Mam problem .. :/
treść mojego zadania to :
dla zadanego wielomianu o wspolczynnikach calkowitych znajdz wszystkie
jego pierwiastki wymierne
p/q

na razie udało mi się sklecić :

// wielomian.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "math.h"

int wczytywane(int s,int tab[])
{

    for (int i=s;i>=0;i--)
    {
    printf("Podaj wspolczynniki wielomianiu przy potedze %d : ", i);
    scanf("%d", &tab[i]);

        /*printf("podaj liczbe stopnia %d : ",i);
        scanf("%d",&tab[i-1]);*/
    }
return 0;
}

void druk_wielomianu(int s, int tab[])
{

    for (int i=s;i>0;i--)
    {
        if (tab[i]!=0)
        {
        printf("%dx^%d",tab[i],i);
        if(i>0) printf("+");
        }
    }
    printf("%dx", tab[0]);
}

void dzielnik (int tab[],int stopien, int dzielnik_a[],int dzielnik_b[],int &licznik_a,int &licznik_b)
{
int a=tab[stopien];
int b=tab[0];
int c;
//zerowanie tablicy

for (int i=0;i<=100;i++) 
{
dzielnik_a[i]=0;
dzielnik_b[i]=0;
}
//pętla do a
    for (int i=1;i<=a;i++)
    {
        c=a%i;
            if (c==0)
            {
                dzielnik_a[licznik_a]=i;
                licznik_a++;
                dzielnik_a[licznik_a]=-i;
            }
        licznik_a++;
    }
//pętla do b
    for (int i=1;i<=b;i++)
    {
        c=b%i;
            if (c==0)
            {
                dzielnik_b[licznik_b]=i;
                licznik_b++;
                dzielnik_b[licznik_b]=-i;
            }
            licznik_b++;
    }
    printf("koniec");
}

void drukowanie_dzielnikow(int dzielniki_a[],int dzielniki_b[],int &wielkosc_da,int &wielkosc_db)
{
    printf("\n \n dzielniki wyrazu wolnego (p) : ");
    for (int i=0;i<=100;i++)
    {
        if(dzielniki_b[i]!=0)
        {
        printf("%d, ",dzielniki_b[i]);
        wielkosc_db++;
        }
    }

printf("\n \n dzielniki przy najwyzszej potedze (q) : ");
    for (int i=0;i<=100;i++)
    {
        if(dzielniki_a[i]!=0)
        {
        printf("%d, ",dzielniki_a[i]);
        wielkosc_da++;
        }
    }

}

//void obliczanie(int dzielniki_a[], int dzielniki_b[],int liczby[],int wa,int wb)
//{
//  for (int i=0;i<=wa++;i++)
//  {
//      double w;  //w= x^l  
//      int x=dzielniki_a[i];
//      int wynik=0;
//
//      for(int l=0;l=licznik_a;l++)
//      {
//          w=pow(l,x);
//          wynik=wynik+w;
//          if(l=licznik)
//              if(wynik==0)
//              {
//                  pierw[licznik_p]=wynik;
//                      licznik_p++;
//              }
//      }
//
//  }
//}

int _tmain(int argc, _TCHAR* argv[])
{
int liczby[100];
int stopien;
int dzielniki_a[100];licznik_a=0;
int wielkosc_da=0;
int dzielniki_b[100],licznik_b=0;
int wielkosc_db=0;

int pierw[100],licznik_p;
printf("podaj stopien wielomianu:  ");
scanf("%d",&stopien);
wczytywane(stopien,liczby);
druk_wielomianu(stopien,liczby);
printf("\n zaczynam obliczac ...");
//obliczanie(liczby,stopien);
dzielnik(liczby,stopien,dzielniki_a,dzielniki_b,licznik_a,licznik_b);
drukowanie_dzielnikow(dzielniki_a,dzielniki_b,wielkosc_da,wielkosc_db);

    return 0;
}

tzn .. oblicza mi już dzielniki przy najwyższej potędze i wyrazie wolnym czyli p i q
tu mam metodę ...

http://matematyka.org/liceum328636030310,3,yisvp.htm

jak mam wykonać kolejne kroki czyli sprawdzenie czy dzielnik jest pierwiastkiem (próbowałem to już zapisać funkcja oblicz nie skończona :P ) i pozostałe kroki ..

Proszę o pomoc

Pozdrawiam