用C语言:求10--1000中,所有既是回文数又是素数的打印 10

用C语言解,谢谢... 用C语言解,谢谢 展开
 我来答
邛迈贡穹
2019-10-24 · TA获得超过3769个赞
知道大有可为答主
回答量:3129
采纳率:29%
帮助的人:177万
展开全部
int
i,j,m=0
for
(i=10;i<=1000;i++)
{for
(j=2;j<i-1;j++)
if
(i%j==0)
break;
if(i>=j+1)
a[m++]=i;
"将10-1000所有素数存于数组A中"
}
for
(i=0;i<=m;i++)
{判断a[i]是否是回文数,如果是则输出
}
-------------------------------------------
*问题分析与算法设计
所谓回文素数是指,对一个整数n从左向右和从由向左读其结果值相同且是素数,即称n为回文素数。所以本题的重点不是判断素数的方法,而是求回文整数。构造回文数的方法很多,这里仅介绍一种最简单的算法。实现思路是先求出一个整数的回文数,再判断是否为素数。
不超过1000的回文数包括二位和三位的回文数,我们采用穷举法来构造一个整数并求与其对应的反序数,若整数与其反序数相等,则该整数是回文数。
*程序说明与注释
#i
nclude<stdio.h>
int
a(int
n)
int
main()
{
int
i,j,t,k,s;
printf("Following
are
palindrome
primes
not
greater
than
1000:\n");
for(i=0;i<=9;++i)
//穷举第一位
for(j=0;j<=9;++j)
//穷举第二位
for(k=0;k<=9;++k)
//穷举第三位
{
s=i*100
+
j*10
+
k;
//计算组成的整数
t=ik*100
+
j*10
+
i;
//计算对应的反序数
if(i
==
0
&&
j==0)
//处理整数的前两位为0的情况
{
t/100;
}
else
if(i
==0)
//处理整数的第一位为0的情况
{
t/10;
}
if(s.10
&&
s==t
&&
a(s))
//若大于10且为回文素数,则输出
{
printf("%d\t",s);
}
}
return
0;
}
//判断参数n是否为素数
int
a(int
n)
{
int
i;
for(i=2;i<(n-1)/2;+=i)
{
if(n%i
==
0)
return
0;
}
return
1;
}
*运行结果
Following
are
palindrome
primes
not
greater
than
1000:
11
101
131
151
181
191
313
353
373
383
727
787
797
919
929
raintome
2007-10-15
知道答主
回答量:96
采纳率:0%
帮助的人:154万
展开全部
int i,j,m=0
for (i=10;i<=1000;i++)
{for (j=2;j<i-1;j++)
if (i%j==0) break;
if(i>=j+1) a[m++]=i; "将10-1000所有素数存于数组A中"
}
for (i=0;i<=m;i++)
{判断a[i]是否是回文数,如果是则输出
}

-------------------------------------------
*问题分析与算法设计
所谓回文素数是指,对一个整数n从左向右和从由向左读其结果值相同且是素数,即称n为回文素数。所以本题的重点不是判断素数的方法,而是求回文整数。构造回文数的方法很多,这里仅介绍一种最简单的算法。实现思路是先求出一个整数的回文数,再判断是否为素数。
不超过1000的回文数包括二位和三位的回文数,我们采用穷举法来构造一个整数并求与其对应的反序数,若整数与其反序数相等,则该整数是回文数。

*程序说明与注释
#i nclude<stdio.h>

int a(int n)
int main()
{
int i,j,t,k,s;
printf("Following are palindrome primes not greater than 1000:\n");
for(i=0;i<=9;++i) //穷举第一位
for(j=0;j<=9;++j) //穷举第二位
for(k=0;k<=9;++k) //穷举第三位
{
s=i*100 + j*10 + k; //计算组成的整数
t=ik*100 + j*10 + i; //计算对应的反序数
if(i == 0 && j==0) //处理整数的前两位为0的情况
{
t/100;
}
else if(i ==0) //处理整数的第一位为0的情况
{
t/10;
}
if(s.10 && s==t && a(s)) //若大于10且为回文素数,则输出
{
printf("%d\t",s);
}
}
return 0;
}

//判断参数n是否为素数
int a(int n)
{
int i;
for(i=2;i<(n-1)/2;+=i)
{
if(n%i == 0)
return 0;
}

return 1;

}

*运行结果

Following are palindrome primes not greater than 1000:
11 101 131 151 181 191 313 353
373 383 727 787 797 919 929
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友f4e789404
2007-10-15 · TA获得超过5754个赞
知道小有建树答主
回答量:2419
采纳率:0%
帮助的人:810万
展开全部
#include<stdio.h>
#include<math.h>
int su(int n)//判断素数
{
int i;
for(i=2;i<=sqrt(n);i++)
if(n%i==0)
return 0;
return 1;
}

void main()
{
int i;
for(i=10;i<=1000;i++)
{
if(i<100&&i%10==i/10&&su(i))
printf("%d\n",i);
if(i>99&&i%10==i/100&&su(i))
printf("%d\n",i);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式