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

Nie akceptuje zadania Liczby pierwsze SPOJ

Fiszki IT
Fiszki IT
0 głosów
81 wizyt
pytanie zadane 10 kwietnia w SPOJ przez AizoOz Początkujący (490 p.)

Nie rozumiem dlaczego wywala mi błąd i nie chce zaakceptować zadania . Ktoś widzi co jest nie tak ?

Wiem, że kod trochę karkołomny, ale robiłem sam i nie chciałem się wzorować rozwiązaniami z netu.

 

#include <iostream>

const int ArSize = 10000;

int main() {
    
    std::cout << "Liczba testow: ";
    int n;
    std::cin >> n;
    
    if (n < 99999)
    {
        int numbers[ArSize];
        int temp;
        for ( int i = 0; i < n; i++)
        {
            std::cin >> temp;
            if ( temp < 10000)
                numbers[i] = temp;
        }
        
        for (int i = 0; i < n; i++)
        {
            for ( int j = 2; j < numbers[i]; j++)
            {
                if ( numbers[i]%j == 0)
                {
                    numbers[i] = false;
                }
                else
                numbers[i] = true;
            }
        }
        
        for (int m = 0; m < n; m++)
        {
            if (numbers[m] == false)
                std::cout << "NIE\n";
            else
                std::cout << "TAK\n";
        }
        
    }
    return 0;
}

 

komentarz 22 kwietnia przez Oscar Pasjonat (19,010 p.)
edycja 22 kwietnia przez Oscar
Trochę na dużo dziewiątek w linii 11. W ogóle to skoro masz już zdefiniowaną stałą...

O ile trafiłem na to samo zadanie to tam limit długości wejścia to 100000. Ponieważ jest narzucony limit czasu to na pewno jednym ze sprawdzeń jest sprawdzenie na maksymalnej liczbie danych wejściowych. Jak sądzę 5s na sprawdzenie 100 tys liczb wymaga by było to coś szybszego takie "brutalne" sprawdzanie każdej liczby - szczególnie, że zadanie jest z 2004 roku. Podany w zadaniu przedział wartości (mniejszy niż liczba danych do sprawdzenia) sugeruje przygotowanie sobie wcześniej tabeli liczb pierwszych...

1 odpowiedź

0 głosów
odpowiedź 22 kwietnia przez SimiVoid Pasjonat (17,480 p.)
Pobierasz liczby a potem je nadpisujesz zmienną boolowską, czy to ma sens, czego w następstwie warunek w linii 28 będzie sprawdzał 0%n lub 1%n po pierwszym przebiegu pętli for w zaczynającej się w linii 24.

Stwórz tablicę o takim samym rozmiarze tylko zmiennych typu bool.

Innym problemem że tablica nie jest dynamiczna i może być błąd podczas kompilacji.

Podobne pytania

0 głosów
3 odpowiedzi 143 wizyt
pytanie zadane 1 stycznia 2018 w C i C++ przez mn130496 Gaduła (3,260 p.)
0 głosów
1 odpowiedź 149 wizyt
pytanie zadane 18 grudnia 2016 w C i C++ przez Kamila1999 Nowicjusz (140 p.)
0 głosów
1 odpowiedź 1,710 wizyt
pytanie zadane 2 marca 2019 w Java przez mn130496 Gaduła (3,260 p.)
Porady nie od parady
Forum posiada swój własny serwer Discord, dzięki któremu będziesz mógł po prostu pogadać z innymi Pasjonatami lub zapytać o jakiś problem. Podstrona z chatem znajduje się w menu pod ikoną człowieka w dymku.IRC

84,751 zapytań

133,554 odpowiedzi

295,976 komentarzy

56,009 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...