标签:10 arr 题目 数字 int 超级 include
7-11 小明的超级数字 (60分)
小明最近一段时间爱上了数学,他太喜欢数学了,以至于经常给数字取名字。今天天气很好,他突然有了一个想法,将既是回文数又是质数的数字叫做超级数字。但是他却不知道要如何判断和找出这些数字,因此他找到了奇奇哥,奇奇哥很热心的帮助他解决问题,并且给你一个考验,请写出判断一个数字是否是超级数的程序,要求将判断超级数的两个条件写在两个个函数之中,输入一个n(0=<n<=100000),若是超级数则输出n is super figure 否则输出n is a common figure
输入格式:
输入一个数字n,(0=<n<=100000)
输出格式:
若该数字是超级数则输出n is super figure 否则输出n is a common figure
输入样例:
151
输出样例:
151 is super f``igure
#include<stdio.h>
#include <stdlib.h>
#include <string.h>
#define M 9989899
char arr[M];//既然数组里面只有 0 1 则可以定义为 char 类型 节省空间
int q[10003];
void f() { //筛选法求素数
int i,j;
memset(arr,0,sizeof(arr));
arr[0]=1;
arr[1]=1;
for(i=2; i*i<M; i++) {
if(!arr[i]) {
for(j=i*i; j<=M; j+=i)
arr[j]=1;
} //素数打表
}
}
int g(int num) { //判断是否回文
int k=0,l=0,m;
m=num;
while(m>0) { //将num反过来
l=l*10+m%10;
m/=10;
}
if(l==num) k=1;
return k;
}
int h() {
int o,p=0;
for(o=5; o<=M; o++) { //o是要选的数
if(!arr[o]&&g(o))
q[p++]=o; //符合所有条件
}
//q[p]=-1;
}
int main() {
f();
h();
int x,y,z;
while(scanf("%d%d",&x,&y)!=EOF) {
for(z=0; q[z]<=y&&q[z]>0; z++) {
if(q[z]>=x)
printf("%d\n",q[z]);
}
printf("\n");
}
return 0;
}
标签:10,arr,题目,数字,int,超级,include 来源: https://blog.csdn.net/quanrengui123123/article/details/111157036
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。