Flint2-0.1.0.0: csrc/fmpz_factor/fprint.c
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <flint/flint.h>
#include <flint/fmpz.h>
#include <flint/fmpz_factor.h>
#include "../fmpz_factor.h"
void
fmpz_factor_fprint(FILE * out, const fmpz_factor_t factor)
{
slong i;
if (factor->sign == 0)
{
flint_fprintf(out, "0");
return;
}
if (factor->sign == -1)
{
if (factor->num)
flint_fprintf(out, "-1 * ");
else
flint_fprintf(out, "-1");
}
for (i = 0; i < factor->num; i++)
{
fmpz_fprint(out, factor->p + i);
if (factor->exp[i] != UWORD(1))
flint_fprintf(out, "^%wu", factor->exp[i]);
if (i != factor->num - 1)
flint_fprintf(out, " * ");
}
}