神奇的可逆素数

可逆素数是指将一个素数的各位数字顺序地倒过来构成的反序数仍然是素数,请问按以上叙述所有的四位素数有哪些。

采用逐位提取数字的方法即对这个四位数采用“%”或“/”的方法分解出每位上的数字。在对重新组合的数字进行判断看是否是素数,并判断是否大于原来的四位数,为了防止重复输出例如1031与1301互可逆素数,这里只输出1031即可,1301不必输出

int ss(int i) /自定义函数判断是否为素数 /

{

int j;

if (i <= 1) /小于1的数不是素数 /

return 0;

if (i == 2) /2是素数 /

return 1;

for (j = 2; j < i; j++) /对大于2的数进行判断 /

{

if (i % j == 0)

return 0;

else if (i != j + 1)

continue;

else

return 1;

}

}

void main()

{

int i, n = 0, n1, n2, n3, n4;

for (i = 1000; i < 10000; i++)

if (ss(i) == 1)

{

n4 = i % 10; /取个位数 /

n3 = (i % 100) / 10; /取十位数 /

n2 = (i / 100) % 10; /取千位数 /

n1 = i / 1000; /取万位数 /

if (ss(1000 * n4 + 100 * n3 + 10 * n2 + n1) == 1 && 1000 * n4 + 100 * n3

- 10 * n2 + n1 > i) /根据条件判断 /

{

printf("%d,", i);

n++; /记录个数 /

if (n % 10 == 0) /10个数一换行 /

printf("\n");

}

}

}

谷歌验证码收不到?接码三步速解与安全合规全流程指南
丹麦大名单:埃里克森、舒梅切尔、霍伊别尔在列