- 对称素数:一个整数m的逆序数就是m本身,则称m为对称数,一个整数m如果是对称数又是素数,则称m为对称素数;
例如101,131,929等都是3位对称素数,表现为左右对称;
试统计指定n(1< n <10)位对称素数的个数,并输出其中最大的对称素数;
1.说明:
对于每一个n位奇数m通过以下两道检测:
- 应用试商判别法检测是否为素数,如果不是素数,则返回;
- 分离m的n个数字存储与数组h[j](j=1~n),若j=1~n/2中的某一个出现有 h[j]!=h[n-j+1],m不是对称数,则返回;
凡通过以上两道检测的为n位对称素数,应用s统计个数,并记录其中的最大数;
2.程序设计:
#include<stdio.h>
#include<math.h>
int main()
{
int a,b,c,g,i,j,n,s,h[10];
long m,max,d,t;
printf("请输入位数n(n>1):");
scanf("%d",&n);
s=0;
t=1;
a=n/2;
for(j=1;j<=n-1;j++) /*计算最小的n位整数t*/
t=t*10;
for(m=t+1;m<=(10*t-1);m&