Прикреплен код для поиска всех простых чисел между 2 числами. t
- количество тестовых случаев, а n
, m
- верхний и нижний пределы соответственно. Я запустил эту программу, и она продолжает выдавать ошибку sigsegv.
#include <iostream>
using namespace std;
int Prime1(int n,int m)
{
int i,j;
//cout<<"Enter :"<<endl;
//cin>>n;
int x[n];
for(i=0;i<=n;i++)
{
x[i]=1;
}
for(i=4;i<=n;i+=2)
{
x[i]=0;
}
for(i=3;i<=n;i+=2)
{
if(x[i])
{
for(j=2*i;j<=n;j+=i)
{
x[j]=0;
}
}
}
if(m==1)
{
m=m+1;}
for(i=m;i<=n;i++)
{
if(x[i])
{
cout<<i<<endl;;
}
}
}
int main()
{
int x,y,t;
cin>>t;
while(t!=0)
{
cin>>x>>y;
cout<<endl;
if(x>y)
{
Prime1(x,y);
}
else
{
Prime1(y,x);
}
t--;
}
system("pause");
}