partialX(C,a,b,c) =
{return(subst(subst(subst(deriv(C,x),x,a),y,b),z,c))}
partialY(C,a,b,c) =
{return(subst(subst(subst(deriv(C,y),x,a),y,b),z,c))}
partialZ(C,a,b,c) =
{return(subst(subst(subst(deriv(C,z),x,a),y,b),z,c))}

find_singular(C,p) =
{
local(a,b,c);
a = 0;
b = 0;
c = 1;
    while(a <= p - 1, 
	while(b <= p - 1, 
		while(c <= p - 1, 
			if(partialX(C, a, b, c) %p == 0 && 
			   partialY(C, a, b, c) %p == 0 && 
		           partialZ(C, a, b, c) %p == 0,
                        	print("(",a,",",b,",",c,")"," is singular")
   			);
   			c++;
		);
		b++;
		c = 0);
   	a++;
	b = 0;
	c = 0
)
}