c语言编程 找出所有的100-999回文素数

如题所述

第1个回答  2010-11-26
我给你写了个1000的~~~改一下就好啦~
==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
#include<stdio.h>
#include<stdlib.h>

main()
{
int data[1000];/*储存数字*/
int i,j,count=0;
for(j=2;j<=999;j++)/*从2开始初始化为1*/
{
data[j]=1;
}
for(i=2;i<=32;i++)/*i是待除因子*/
{
for(j=i+1;j<=999;j++)/*j是数字,若为合数则为0*/
{
if(j%i==0)
{
data[j]=0;
}
}
}

for(j=1;j<=999;j++)/*循环输出结果*/
{
if(data[j]==1)
{
printf("%5d",j);
count++;
if(count%5==0)/*每5个换行一次*/
{
printf("\n");
}
}
}
printf("\n");
system("pause");
return 0;
}

希望对你有帮助~~~~
我也是去年才学的c语言~~~作业还是鼓励自己写呀~~~~~~~~~~
第2个回答  2010-11-18
已验证正确!
#include <stdlib.h>
#include <stdio.h>
#include <math.h>

//判断该数字是否为回文数
int IsReverse(int iNum)
{
int iTmp = iNum;
int iTarget(0);
while(iTmp )
{
iTarget = iTarget *10 +iTmp%10;
iTmp = iTmp/10;
}
iTmp = iNum;
return (iTmp == iTarget);
}
// 判断该数是否为素数
int IsShu( int iNum)
{
int iTmp = (int) sqrt(iNum);
for (int i = 2;i<iTmp;i++)
{
if((iNum %i) == 0)
{
return 1;
}
}

return 0;
}

int main(int argc ,char ** argv)
{
int i(100);
for (;i<= 999;i++)
{

if( IsReverse(i)&&IsShu(i))
{
printf("%d\n",i);
}

}

return 0;

}
第3个回答  2010-11-17
楼上调试否?????楼主要检验是否正确执行呀!!!!
#include<stdio.h>
#include<math.h>
void main()
{
int sh(int c);
int a,h,f,g;
for(a=101;a<1000;a+=2)
{
if(sh(a)==0) ;
if(sh(a)==1)
{
h=a/100;
f=a/10;
g=a-f*10;
if(h==g)
printf("%d,",a);
}
}
}
int sh(int c)
{int d,e=1;
for(d=3;d<=sqrt(c);d+=2)
{
if(c%d==0)
{e=0;return e;break;}
return e;
}
}
第4个回答  推荐于2018-04-27
#include <stdio.h>
void main()
{
for(int i=100;i<999;i++)
{
for(int j=2;j<i;j++)
{
if(i%j==0)
break;
}
if(j==i)
{
int a=i/100;
int b=i%10;
if(a==b)
printf("%d ",i);
}
}
}本回答被提问者和网友采纳