圆周素数
197被称为圆周素数,因为将它逐位旋转所得到的数:197/971和719都是素数。
小于100的圆周素数有十三个:2、3、5、7、11、13、17、31、37、71、73、79和97。
小于一百万的圆周素数有多少个?
自己理解的组合方法就是,将其中一位的数字及其后面的数字依次放在首位,然后将这位数字之前的数放在后面
bool isPrim(int n)
{
int i = 2;
for( ; i * i < n; i++)
{
if(n % i == 0) return false;
}
return true;
}
bool circular_Prime(int n)
{
int i, j, sum = 0, len, k, kk;
char s[6];
sprintf(s, "%d", n);
len = strlen(s);
for (i = 0; i < len; i++)
{sum = 0;
for (j = i; j < len ; j++)
{
sum += s[j] - 48;
if (j != len - 1) sum *= 10;
}
k = i;
for (kk = 0; kk < k; kk++)
{
sum *= 10;
sum += s[kk] - 48;
}
if (!isPrim(sum)) return false;
}
return true;
}
void fun5(void)
{
int sum=4;
for(int i = 11; i < 1000000; i++)
{
if(circular_Prime(i))
{
//printf("%d\n", i);
sum++;
}
}
printf("%d\n",sum);
}
int main (void)
{
fun5();
return 0;
}