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

SPOJ-Problem Dyzia

42 Warsaw Coding Academy
0 głosów
499 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 545 wizyt
pytanie zadane 28 sierpnia 2016 w C i C++ przez pewien_programista Obywatel (1,070 p.)
+1 głos
3 odpowiedzi 1,397 wizyt
pytanie zadane 29 lipca 2016 w C i C++ przez mat1911 Nowicjusz (230 p.)
0 głosów
2 odpowiedzi 377 wizyt
pytanie zadane 3 maja 2016 w C i C++ przez wojtekw0703 Użytkownik (960 p.)

93,398 zapytań

142,390 odpowiedzi

322,576 komentarzy

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

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...