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

Program do obliczania liczb pierwszych wg mojej teorii...potrzebne większe liczby ! Liczby jako string?

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
739 wizyt
pytanie zadane 1 grudnia 2015 w C i C++ przez skar15 Początkujący (330 p.)
edycja 1 grudnia 2015 przez skar15

Witam..uczę sie od roku programowania C++..sporo pewnie tutaj można uprościć...program oblicza liczby pierwsze wg mojej teorii..tzn nie spotkałem się nigdzie z takim podejsciem do problemu ale może się mylę. Potrzebna porada ..jak poradzić sobie z wiekszą ilością liczb i oczywiście dużo wiekszych..czy to możliwe ? Czy liczby zapisywać jako string? ..Program działa prawidłowo ale utknąłem na większych liczbach. Bardzo dziękuje za wszelkie sugestie..i wielkie ukłony dla Pana Mirka..

 

#include <iostream>
#include <iomanip>
#include <fstream>
#include <vector>
#include <string>
#include <time.h>
#include <conio.h>
#include <windows.h>
#include <stdio.h>

int tabR[95]={     6,4,2,4,2,4,6,2,6,4,
                   2,4,2,4,6,2,6,4,2,4,
                   2,4,6,2,6,4,2,4,2,4,
                   6,2,6,4,2,4,2,4,6,2,
                   6,4,2,4,2,4,6,2,6,4,
                   2,4,2,4,6,2,6,4,2,4,
                   2,4,6,2,6,4,2,4,2,4,
                   6,2,6,4,2,4,2,4,6,2,
                   6,4,2,4,2,4,6,2,6,4,
                   2,4,2,4,6};





int64_t tabPr[90000000];
int64_t tabIl[90000000];
int64_t mod,j,y,kr,k;
int64_t f=1;
int suma_R;
int64_t i,ki,z=1;
int a, jn=360;


int64_t L;
int Lk;
int p;
int64_t x;

using namespace std;


int main()
{
    cout << "Hello world!" << endl;

    time_t czas;
    struct tm * ptr;
    time( & czas );
    ptr = localtime( & czas );
    char * data = asctime( ptr );
   std::cout << "Data: " << data;
    cout<<"wpisz dlugosc ciagu do 90 mln"<<endl;
    cin>>L;



     for(i=0; i<L; i++)
     {


      tabPr[i]=1+jn*i;
      tabIl[i]=tabPr[i];


     }
     cout<<"obliczylem wartosci"<<endl;

        for(k=0; k<L/jn; k++)
         {

                 x=k*jn;
                for(a=0; a<96; a++)
                {




                    f=f+tabR[a];


                    for(j=x; j<f; j++)
                {




                    mod=tabPr[j]%f;

                        if(mod==0)
                        {


                                for(j; j<L; j=j+f)
                                    {


                                    tabIl[j] =0;



                                    }




                        }


                }


            }

         }
         cout<<"bede drukowal"<<endl;

                       fstream plik;
                    plik<<setprecision(1000000);

                    plik.open("liczby P.txt",ios::out|ios::app);


                plik<<"..........................."<<endl;
                plik<<data<<endl;
                plik<<"  liczby pierwsze         "<<endl;
                plik<<"............................................."<<endl;




        for(y=0; y<L/7; y++)
        {
            if(tabIl[y]!=0)
            {
              plik<<z<<". "<<y*jn+1<<endl;
              z++;
            }



        }
        plik.close();
    return 0;
}

 

3 odpowiedzi

0 głosów
odpowiedź 1 grudnia 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)
Proszę o umieszczenie kodu w specjalnym bloku na kod.
komentarz 1 grudnia 2015 przez skar15 Początkujący (330 p.)
Umieściłem...pierwszy raz tutaj i zagubiony nieco
komentarz 2 grudnia 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)
No widzisz jak teraz ładnie :) Tylko możnaby te zbędne entery powywalać :D
0 głosów
odpowiedź 1 grudnia 2015 przez niezalogowany
Jeżeli chcesz korzystać z większego zakresu liczb niż long long, to niestety musisz albo napisać własną klasę do takich liczb (wraz z całą potrzebną arytmetyką) lub skorzystać z jakiegoś gotowego rozwiązania.

Btw odpowiedziałem ci tylko dltego że problem nie dotyczył bezpośrednio kodu, zapoznaj się z tym: https://forum.pasja-informatyki.pl/faq
0 głosów
odpowiedź 1 grudnia 2015 przez niezalogowany
Odnośnie kodu, możesz powiedzieć co dokładnie od robi? Jeżeli jako wyjście dam np. 2000 to czym jest te "2000"?

Mogę ci już powiedzieć że i tak działa źle oraz zużywa bardzo dużo zasobów, pomijając okropny styl pisania kodu.
komentarz 1 grudnia 2015 przez skar15 Początkujący (330 p.)
Rozmawiałem na ten temat z byłym wykładowca algorytmow ..zrobiła sie cisza...różnie można myśleć...dziekuje ze zainteresowałeś sie i cierpliwość..podeślę ci jutro na maila.

Pozdrawiam Wiesław P...zajrze jeszcze na Twoją stronkę
komentarz 2 grudnia 2015 przez Schizohatter Nałogowiec (39,600 p.)
Również jestem ciekawy, co odkryłeś Ty, czego nie odkrył przed Tobą wielki matematyk. Podzielisz się? soanvig@gmail.com
komentarz 2 grudnia 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)
Hmm, bardzo ciekawe, czy podzielisz się również ze mną? Na PW.
komentarz 2 grudnia 2015 przez skar15 Początkujący (330 p.)
Witaj..nie robie z tego tajemnicy...ciekawi mnie tylko czy z tego co umieściłem da się rozpoznać zamysł obliczania liczb pierwszych..dziekuję że odpisałeś..podeślę na PW.
komentarz 2 grudnia 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)
Mnie ciekawi twoja teoria :) Chociaż nie wydaje mi się, żebyś zrobił to, czego nie dokonały umysły takie jak chociażby Euler, ale kto wie ^^

Podobne pytania

+4 głosów
3 odpowiedzi 832 wizyt
0 głosów
1 odpowiedź 1,030 wizyt
0 głosów
0 odpowiedzi 218 wizyt
pytanie zadane 3 września 2018 w C i C++ przez KaRoLiNakk Nowicjusz (160 p.)

93,180 zapytań

142,193 odpowiedzi

321,991 komentarzy

62,511 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 1873p. - dia-Chann
  2. 1848p. - Łukasz Piwowar
  3. 1831p. - CC PL
  4. 1827p. - Łukasz Eckert
  5. 1769p. - Michal Drewniak
  6. 1761p. - Łukasz Siedlecki
  7. 1758p. - rucin93
  8. 1708p. - Adrian Wieprzkowicz
  9. 1680p. - Tomasz Bielak
  10. 1668p. - Mikbac
  11. 1621p. - rafalszastok
  12. 1506p. - Marcin Putra
  13. 1356p. - ssynowiec
  14. 1289p. - Anonim 3619784
  15. 1169p. - Grzegorz Aleksander Klementowski
Szczegóły i pełne wyniki

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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...