高手们 都来试一下吧 在一个求十亿以内回文素数的程序内 增加自定义范围功能
#include <stdio.h> #include <math.h>
int prime_test( long x )
{
long sqx = (long)sqrt( x ) , t;
for( t = 3; t <= sqx ; t += 2 )
if( x % t == 0 )
return 0;
return 1;
}
int slove( long x , long * r )
{
long a = x / 10;
while( a > 10 )
{
x *= 10;
x += a % 10;
a /= 10;
}
if( a%2 == 0 || a == 5 )
return 0;
x = x * 10 + a;
if( prime_test( x ) )
return *r = x , 1;
return 0;
}
int main()
{
long i , r;
printf( "2\n3\n5\n7\n" );
for( i = 10; i < 100; ++i )
{
if( slove( i , &r ) )
printf( "%d\n" , r );
}
for( i = 100; i < 1000; ++i )
{
if( slove( i , &r ) )
printf( "%d\n" , r );
}
for( i = 1000; i < 10000; ++i )
{
if( slove( i , &r ) )
printf( "%d\n" , r );
}
for( i = 10000; i < 100000; ++i )
{
if( slove( i , &r ) )
printf( "%d\n" , r );
}
return 0;
}
以上为我的代码 希望大侠们能把它改成求任意范围内回文素数的程序。。。。。