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