• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

SPOJ - input/output - poprawność pobierania danych i wypisywania wyników

Object Storage Arubacloud
+1 głos
1,237 wizyt
pytanie zadane 18 stycznia 2016 w C i C++ przez Czapa Nowicjusz (200 p.)

Siedzę już dłuższy czas nad zadaniem za SPOJA, dokładnie nad "Prime Generator". Po przesłaniu kodu do sprawdzenia dostaję odpowiedź WA. Wydaje mi się, że mój kod zwraca poprawne wyniki więc zanim zagłębie się w szukanie błędu chciałem się upewnić, że format zwracanych przeze mnie danych jest poprawny. 

Ze SPOJ'a:

Input

The input begins with the number t of test cases in a single line (t<=10). In each of the next t lines there are two numbers m and n (1 <= m <= n <= 1000000000, n-m<=100000) separated by a space.

Output

For every test case print all prime numbers p such that m <= p <= n, one number per line, test cases separated by an empty line.

Example

Input:
2
1 10
3 5

Output:
2
3
5
7

3
5

Fragment mojego kodu odpowiadający za pobieranie i zwracanie wyników:

#include <iostream>

using namespace std;

int main()
{
short ile;

int n,m;
bool tab[100001];


cin>>ile;

for(int i=0;i<ile;i++)
{
        cin>>m>>n;

//
// Fragment wyciętego kodu 
//

        for(int i=0;i<(n-m+1);i++)
        {
        if(tab[i]==false)
        cout<<i+m<<endl;
        }
        cout<<endl;
}
return 0;
}

Najpierw pobieram ilość testów, następnie pobieram parę liczb n,m i od razu dla tej pary wypisuję wynik. Czytając fora natknąłem się na komentarz mówiący "Dont forget to clean up between test cases", dla innych wysłanych i zaakceptowanych zadań nigdy nie robiłem czegoś takiego.

Prosiłbym o komentarz czy nie robię błędu na tym etapie zadania. Z góry dziękuję za odpowiedź.

2 odpowiedzi

0 głosów
odpowiedź 18 stycznia 2016 przez ZakosiliMiNeta Nałogowiec (30,870 p.)
Pytanie czy ty wogóle rozumiesz co napisałeś? W obu pętlach masz tą samą zmienną do iteracji a potem wypisujez jakieś kosmiczne m+i. Na 90% algorytm generowania liczb pierwszych który wyciełeś też jest błędny.
komentarz 18 stycznia 2016 przez Czapa Nowicjusz (200 p.)
Nie widzę problemu w ty, że mam tą samą zmienną do iteracji w dwóch pętlach. Owszem "m+i" może być dla Ciebie kosmiczne bo nie widzisz reszty kodu. W każdym razie nie takie było moje pytanie. Chodzi mi tylko o format w jakim mam wypisywać wyniki żeby program sprawdzający na SPOJ'u nie wyrzucał mi przez to WA.
komentarz 18 stycznia 2016 przez ZakosiliMiNeta Nałogowiec (30,870 p.)
"Chodzi mi tylko o format w jakim mam wypisywać wyniki żeby program sprawdzający na SPOJ'u nie wyrzucał mi przez to WA." WA oznacza wrong answer czyli wypisuje złe odpowiedzi, ale tego powodem nie jest sposób wypisywania
0 głosów
odpowiedź 18 stycznia 2016 przez Sedi Stary wyjadacz (10,200 p.)
Dam Ci "drobną" podpowiedź. Te liczby mają być między m a n. Do tego wystarczy jedna pętla, która idzie od m do n i sprawdza, czy liczba jest po pierwsze różna od 1(gdyż 1 nie jest liczbą pierwszą), i czy dzieli się przez więcej niż przez 1 i samą siebie.

Pozdrawiam :)
komentarz 19 stycznia 2016 przez ZakosiliMiNeta Nałogowiec (30,870 p.)
Master tam są jakgby grupy testów np 5/n 1 10 /n 2 16 /n 5 78/n 4 68/n 5 89 (/n zamień a entery bo piszę z tel). Więc są potrzebne 2 pętle
komentarz 19 stycznia 2016 przez Sedi Stary wyjadacz (10,200 p.)
Oczywiście, masz rację. Spojrzałem na kod i myślałem, że pętla, która idzie do ile, to jest pętla dla n, a druga dla m i wysnułem zbyt szybki wniosek :) - Pozdrawiam

Podobne pytania

+1 głos
1 odpowiedź 338 wizyt
pytanie zadane 9 sierpnia 2016 w C i C++ przez Kasztan Dyskutant (8,080 p.)
0 głosów
1 odpowiedź 265 wizyt
0 głosów
1 odpowiedź 551 wizyt

92,551 zapytań

141,393 odpowiedzi

319,522 komentarzy

61,936 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...