Już znalazłem odpowiedź
Witam,
mam zadanie gdzie 2<=L<U<= 2147483647 zatem tablicę muszę zrobić na wielkość 2147483648 lub większą. Jednak gdy daje takie rozmiary wyskakuje błąd kompilacji z informacją:
/home/Tc2hpj/ccXXok3X.o: in function `_GLOBAL__sub_I_tab':
prog.cpp:(.text.startup+0x167): relocation truncated to fit: R_X86_64_PC32 against `.bss'
prog.cpp:(.text.startup+0x185): relocation truncated to fit: R_X86_64_PC32 against `.bss'
collect2: error: ld returned 1 exit status
gdy tworzę mniejszą tablicę to zadanie nie przechodzi. Co oznacza ten błąd, jak go naprawić i przy okazji czy są jakieś górne ograniczenia dotyczące wielkości tablicy?
Kod:
#include <bits/stdc++.h>
using namespace std;
bool tab[2147483648];
void sitoEratostenesa()
{
tab[0]=tab[1]=1;
for(long long i=2; i*i<2147483648; i++)
{
if(!tab[i])
for(long long j=i*i; j<2147483648; j+=i)
tab[j]=1;
}
}
int main()
{
sitoEratostenesa();
long long n,a,b;
cin>>n;
while(n--)
{
cin>>a>>b;
for(int i=a; i<=b; i++)
if(!tab[i])
cout<<i<<"\n";
}
return 0;
}
a tu zadanie jeśli coś pomoże https://www.spoj.com/WSDOCPP/problems/BFN2/