一道 acm的题目 runtime error 求高手啊

来源:百度知道 编辑:UC知道 时间:2024/05/07 15:26:50
D: 回文素数
Description

如果一个正整数既是回文数又是素数就称为回文素数,求出第n个回文素数是多少。

Input:
有多组输入数据,每组数据占一行,包含一个整数n。0<n<100。

Output:
对每个n输出第n个回文素数,每个数占一行。

Sample Input:
1
3
10
99

Sample Output:
2
5
191
93739

#include<iostream>
#include<cmath>
#include<vector>
using namespace std;
bool pr(long int n);
bool hw(long int n);
int main()
{
int n;
long int a[100],j=1,i;
vector<int> prime;
a[0]=2;prime.push_back(2);
for(i=3;i<100000;i++)
{
if(pr(i))
{
prime.push_back(i);
}
}
for(i=1;i!=prime.size();i++)
{
if(hw(prime[i]))
{
a[j]=prime[i];
j++;
}
}
while(cin>>n)
{
cout<<a[n-1]<<endl;
}
}

bool pr(long int n)
{

for(int i=2;i&l

不懂编程~

我VC6上运行没问题,但输入输出格式不满足要求,最好设个数组来保存输入的所有数.

数组开大点
a[100000]

#include <stdio.h>
#include <math.h>

int Prime(long int w)
{

int a, b,c;
a = w%2;
b=3;
c=(int)sqrt(w);
while (a&&b<=c)
{
a=w%b;
b+=2;
}
return a;
}

int main()
{
int a,b,c,d,e;
long int w;

a=0;
b=0;
c=0;
d=0;
e=4;
while (a<=9)
{
e++;
if (e==10)
{
e=0;
d++;
}

if (d==10)
{
d=0;
c++;
}

if (c==10)
{
c=0;
b++;
}

if (b==10)
{
b=0;
a++;
}