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

SPOJ-Problem Dyzia

Object Storage Arubacloud
0 głosów
428 wizyt
pytanie zadane 11 marca 2016 w C i C++ przez hanah1411 Nowicjusz (140 p.)

Witam!

Mam problem z zadaniem ze spoja .Mianowicie nie akceptuje mi kodu wyświetlając komunikat:Przekroczono limit czasu.Proszę więc o pomoc o usprawnienie mego programu.Przesyłam link do treści zadania :http://pl.spoj.com/problems/DYZIO2/ .

#include<iostream>
#include<cstdlib>

using namespace std;
bool czy_pierwsza(int n)
{
  if(n<2)
    return false;
  for(int i=2;i*i<=n;i++)
  {


    if(n%i==0)
      return true;
   }
      return false;
}

int main()
{
int k;
cin>>k;
int a[k];
int b[k];
int p[k];


for( int i=1;i<=k;i++ )
{
    cin>>a[i]>>b[i];
}
for( int i=1;i<=k;i++ )
{
   p[i]=0;
}
for(int i=1;i<=k;i++)
{


   for(int j=b[i];j>=a[i];j--)
   {



   if(czy_pierwsza(j)!=1)
    {


    p[i]++;
    }



}
}


for( int i=1;i<=k;i++ )
{
    cout<<p[i]<<endl;
}


  return 0;
}

 

 

2 odpowiedzi

0 głosów
odpowiedź 11 marca 2016 przez Aisekai Nałogowiec (42,190 p.)
#include możesz chyba usunąć. Słyszałem też, że preinkrementacja/predekrementacja jest szybsza od post.
komentarz 11 marca 2016 przez notabigthreat Mądrala (7,060 p.)

<cstdlib> rzeczywiście nie jest potrzebne (nieistotne z punktu widzenia optymalizacji), ale skąd wziąłeś tę preinkrementację (pomijając marginalny wpływ tego na wydajność) ? Pół kompilatora by zrozumiało, że samodzielne i++ jest równoznaczne z ++i dla intów.

komentarz 11 marca 2016 przez Aisekai Nałogowiec (42,190 p.)
Równoznaczne może jest. Zadziałało?
0 głosów
odpowiedź 11 marca 2016 przez jeremus Maniak (59,720 p.)

przy każdej iteracji :

 for(int i=2;i*i<=n;i++)   obliczasz i*i - to jest dosyć czasochlonne

może najpierw policz k=sqr(n) tylko raz się to policzy

a pętla for ( int i<2;i<=k;i++)

 

a może jest jakiś szybszy algorytm określania liczy pierwszej ?

Podobne pytania

–1 głos
2 odpowiedzi 234 wizyt
pytanie zadane 28 sierpnia 2016 w C i C++ przez pewien_programista Obywatel (1,070 p.)
+1 głos
3 odpowiedzi 949 wizyt
pytanie zadane 29 lipca 2016 w C i C++ przez mat1911 Nowicjusz (230 p.)
0 głosów
2 odpowiedzi 262 wizyt
pytanie zadane 3 maja 2016 w C i C++ przez wojtekw0703 Użytkownik (960 p.)

92,580 zapytań

141,433 odpowiedzi

319,665 komentarzy

61,966 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!

...