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