/******************************************************************************
* *
* DIRICHLET CHARACTERS *
* 04/02/10 (dkc) *
* *
******************************************************************************/
#include <math.h>
double dirchar(unsigned int a, unsigned int p) {
unsigned int i,r;
int s;
r=a-(a/p)*p;
if (r==0)
return(0.0);
for (i=1; i<p; i++) {
s=(int)i*(int)i-(int)r;
if (s==(s/(int)p)*(int)p)
return(1.0);
}
return(-1.0);
}