• 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

Cloud VPS
0 głosów
340 wizyt
pytanie zadane 10 kwietnia 2021 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 2021 przez Oscar Nałogowiec (29,360 p.)
edycja 22 kwietnia 2021 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 2021 przez SimiVoid Pasjonat (19,790 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

–1 głos
3 odpowiedzi 991 wizyt
pytanie zadane 23 sierpnia 2024 w Matematyka, fizyka, logika przez CosmoWielki Użytkownik (710 p.)
0 głosów
3 odpowiedzi 336 wizyt
pytanie zadane 1 stycznia 2018 w C i C++ przez mn130496 Gaduła (3,530 p.)
0 głosów
1 odpowiedź 581 wizyt
pytanie zadane 18 grudnia 2016 w C i C++ przez Kamila1999 Nowicjusz (140 p.)

93,488 zapytań

142,422 odpowiedzi

322,772 komentarzy

62,906 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

Kursy INF.02 i INF.03
...