GMP (GNU Multi-Precision) is a collection of libraries written in the c language for high performance (not specific to Perl). Math::Prime::Util::GMP
is a kind of Perl interface to it. So, it is quite normal that you'll find something like sieve.c
in there. I probably wouldn't advise you to try to change anything to it.
On the other hand, if high performance is not your primary goal, you will probably find pure Perl implementation of what you're looking for by going up in the directory hierarchy (in Math::Prime::util or Math::Prime).