Moze ktos umie oto kod
Kod: Zaznacz cały
#include<stdio.h>
main()
{
int p,q, n, i, j, tmp, m;
int *a, *b, *w, *zp;
printf("Podaj p dla ciala Zp: ");
scanf("%d", &n);
zp = (int*) malloc(sizeof(int)*n);
for(i = 0; i < n; i++)
zp[i] = 0;
for(i = 1; i < n; i++)
{
if (zp[i] > 0)
continue;
for(j = 1; j < n; j++)
{
if( (j * i) % n == 1)
{
zp[i] = j;
zp[j] = i;
break;
}
}
}
printf("Podaj stopien wielomianu P(x): ");
scanf("%d", &p);
a=(int*)malloc(sizeof(int)*p);
printf("Podaj stopien wielomianu Q(x): ");
scanf("%d", &q);
b=(int*)malloc(sizeof(int)*q);
m = p - q + 1;
w=(int*)malloc(sizeof(int)*m);
for(i = 0; i < m; i++)
w[i] = 0;
printf("Podaj kolejno wspolczynniki P(X): ");
for(i=0; i < p;i++)
scanf("%d", &a[i]);
printf("Podaj kolejno wspolczynniki Q(X): ");
for(i=0; i < q;i++)
scanf("%d", &b[i]);
for(i = 0; i < q; i++)
{
tmp = a[i] * zp[b[0]];
w[i] = tmp;
for(j = 0; j < q; j++)
{
a[j+i] =+ - 1 * tmp * b[j];
}
}
printf("P(X)/Q(X) = ");
for(i = 0; i < m; i++)
{
printf("%d ", (30*n + w[i]) % n);
}
printf("
R(X) = ");
for(i = q-1; i < p-1; i++)
{
printf("%d ", (30*n + a[i]) % n);
}
return 0;
}