尝试的修改:(但都失败了)
1.把数组a[2000]放到int main()外面,作为全局变量,同时扩大数组的容量到2000,防止爆栈,但还是显示段错误;
2.如果把2000换到10000的量级,OJ平台就显示运行超时;
代码:
#include
{
int a[2000];
int n, num = 2, i = 0;
cin >> n;
while (num <= n)
{
if (num == 2)
{
a[i] = num;
num += 1;
i++;
}
else
{
int sign = 0;
for (int k = i - 1; k >= 0; k--)
{
if (num % a[k] == 0)
{
sign++;
break;
}
}
if (sign == 0)
{
a[i] = num;
i++;
}
num += 2;
}
}
num = 0;
int k1 = 1;
while (k1 <= i && i > 1)
{
if (a[k1] - a[k1 - 1] == 2)
{
num++;
}
k1++;
}
cout << num;
}
报错显示: