注册 登录
编程论坛 新人交流区

求助用c语言编程 我的难题

雾雨非流云 发布于 2007-11-03 16:35, 366 次点击

The number 151 is a prime palindrome because it is both a prime number and a palindrome (it is the same number when read forward as backward). Write a program that finds all prime palindromes in the range of 3 and 1,000,000,000.

Output
The list of palindromic primes in numerical order, one per line. Then print the run time (seconds) at the last line.


Sample Output

3
5
7
11
101
131
151
181
191
313
353
373
383
...
...
30 seconds The final score


The final score Score = Style(10) + Correct(50) + Speed(T)
where T = 70 - RunTime(seconds)

3 回复
#2
hago2007-11-03 16:49

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int sushu(long x)//判断数是否是素数,若不为素数输出0,否则输出不为0的数
{
long a=1;
int c=1;
double k;k=sqrt(x);
while(c&&a<k+1)
{
a++;c=x%a;
}
return c;
}
int nixushu(long x)//求一个数的逆序数
{
int a;
long b=0;

while(x)
{
a=x%10;x=x/10;b=b*10+a;
}
return b;
}

int main()
{
long a;
double D=pow(10,8);
for(a=3;a<10*D;a+=2)
{
if(a<2*D||(a>3*D&&a<4*D)||(a>7*D&&a<=8*D)||a>=9*D)//数a开头为24568的不计入
{
if(nixushu(a)==a)
{
if(sushu(a))
{
printf("%ld\n",a);
}
}
}
}

printf("------END----________--------");
return 0;

}
这是答案 供你参考下

#3
xuhuidream352007-11-03 21:36
不懂!
#4
qiuchengw2007-11-03 21:40
写两个函数,一个判断是不是回文数,一个判断是不是素数,这两个算法网上都有代码的
1