fork download
  1. #include <iostream>
  2. #include <math.h>
  3. #include <list>
  4. #include <time.h>
  5. using namespace std;
  6. int x,y,z,w=0,n;
  7. int wzornik[168],a=0,b,d,s;
  8. float licznik,zmienna;
  9. list <int> lista;
  10. double czas=0;
  11. int main()
  12. {
  13. clock_t start;
  14. clock_t koniec;
  15. start=clock();
  16. lista.push_back(2);
  17. for ( int liczba=3;liczba<=1000;liczba=liczba+2)
  18. {
  19. lista.push_back(liczba);
  20. }
  21. for ( int liczba=9;liczba<=1000;liczba=liczba+3) lista.remove(liczba);
  22. for ( int liczba=25;liczba<=1000;liczba=liczba+5) lista.remove(liczba);
  23. for ( int liczba=49;liczba<=1000;liczba=liczba+7) lista.remove(liczba);
  24. for ( int liczba=121;liczba<=1000;liczba=liczba+11) lista.remove(liczba);
  25. for ( int liczba=169;liczba<=1000;liczba=liczba+13) lista.remove(liczba);
  26. for ( int liczba=289;liczba<=1000;liczba=liczba+17) lista.remove(liczba);
  27. for ( int liczba=361;liczba<=1000;liczba=liczba+19) lista.remove(liczba);
  28. for ( int liczba=529;liczba<=1000;liczba=liczba+23) lista.remove(liczba);
  29. for ( int liczba=841;liczba<=1000;liczba=liczba+29) lista.remove(liczba);
  30. lista.remove(961);
  31. koniec=clock();
  32. czas=(double)(koniec-start) / CLOCKS_PER_SEC;
  33. cout <<"Zbudowano baze liczb pierwszych ponizej 1000 - Zajelo to :" << czas << "czasu"<<endl;
  34. cout<<"Liczb na liscie: "<<lista.size()<<endl;
  35. for(list<int>::iterator i=lista.begin(); i!= lista.end() ; i++)
  36. {
  37. b=*i;
  38. //cout<<" "<<b; - wlacz zeby zobaczyc tablice wzorcowa
  39. wzornik[a]=b;
  40. a=a+1;
  41. }
  42. koniec=clock();
  43. czas=(double)(koniec-start) / CLOCKS_PER_SEC;
  44. cout << "Przekopiowano baze z LISTy do tablicy - Zajelo to :" << czas << "czasu"<<endl;
  45. for ( int liczba=999;liczba<=1000000;liczba++)
  46. {
  47. s=0;
  48. for (d=0;d<=167;d++)
  49. {
  50. zmienna=liczba;
  51. licznik=(zmienna/wzornik[d])/(round(liczba/wzornik[d]));
  52. if (licznik==1) d=200;
  53. else s++;
  54. }
  55. if (s>=168)
  56. {
  57. lista.push_back(liczba);
  58. }
  59. }
  60. koniec=clock();
  61. czas=(double)(koniec-start) / CLOCKS_PER_SEC;
  62. cout << "Zbudowano baze 78498 liczb pierwszych do 1 MLN Zajelo to : " << czas << " czasu od startu"<<endl;
  63. cout<<"Liczb na liscie: "<<lista.size()<<endl;
  64. //cin>>n;
  65. n=20000;
  66. for (int u=0;u<=n-1;u++)
  67. {
  68. //cin>>x>>y;
  69. x=1,y=1000000;
  70. for(list<int>::iterator j=lista.begin(); j!= lista.end() ; j++)
  71. {
  72. z=*j;
  73. if ((z>=x)&&(z<=y)) w++;
  74. }
  75. //cout<<w;
  76. //cout<<"Odpowiedz na zapytanie o ilosc liczb pierwszych z zapytania na wejsciu: "<<w<<endl;
  77. w=0;
  78. }
  79. koniec=clock();
  80. czas=(double)(koniec-start) / CLOCKS_PER_SEC;
  81. cout << "Wykonano zapytania zgodnie z danymi WEJSCIOWYMI Zajelo to :" << czas << "czasu"<<endl;
  82. return 0;
  83. }
Success #stdin #stdout 2.24s 17616KB
stdin
Standard input is empty
stdout
Zbudowano baze liczb pierwszych ponizej 1000 - Zajelo to :0.00039czasu
Liczb na liscie: 168
Przekopiowano baze z LISTy do tablicy - Zajelo to :0.000424czasu
Zbudowano baze 78498 liczb pierwszych do 1 MLN  Zajelo to : 0.147636 czasu od startu
Liczb na liscie: 78498
Wykonano zapytania zgodnie z danymi WEJSCIOWYMI Zajelo to :2.25529czasu