Jump to content

Primele N Numere Prime


Courage

Recommended Posts

  • Moderators

Enunţ: Să se afişeze primele n numere prime. Exemplu: Date de intrare n=6 Date de ieşire 2 3 5 7 11 13.

 

Prima dată mă gândeam la 

 

#include <iostream>
#include <math.h>
#include <limits>
using namespace std;
int main()
{
    unsigned n,i,d,x,s=0;
    cout<<"n=";
    cin>>n;
    for (i=2;i<=numeric_limits<double>::infinity();i++)
    {
        x=1;
        if (i%2==0 && i!=2)
            x=0;
        else
            d=3;
        while (d<=sqrt(i) && x==1)
        {
            if (i%d==0)
                x=0;
            else
                d=d+2;
        }
        if (x==1)
        {
            cout<<i<<" ";
            s++;
            if (s==n)
                break;
        }
    }
    return 0;
}
 

 

Însă am mai lucrat azi dimineaţă şi l-am mai simplificat. Acum arată aşa:

 

#include <iostream>
#include <math.h>
#include <limits>
using namespace std;
int main()
{
    unsigned n,i,x,s=0,p;
    cout<<"n=";
    cin>>n;
    for (i=2;i<=numeric_limits<double>::infinity();i++)
    {
        x=1;
        for (p=2;p<=i/2;p++)
            if (i%p==0)
                x=0;
        if (x==1)
        {
            cout<<i<<" ";
            s++;
            if (s==n)
                break;
        }
    }
    return 0;
}
 

 

E ok? Ambele afişează ceea ce trebuie :)

  • Upvote 1
Link to comment
Share on other sites

dc mergi pana la infinit, si pui o conditie speciala pt n?

nu era mai logic s mergi direct pana la n?

 

for (i=2;i<=numeric_limits<double>::infinity();i++)

 

trebuia sa fie

for(i=2;i<=n;i++)

 

astfel, disparea si  s++; if (s==n) break;

 

nu mai folosii reprezentarea aia pentru infinit asa usor, nu e o idee buna.

love is a verb
Love is a doing word

Link to comment
Share on other sites

ah da scz. tocmai ce mam trezit.

 

acuma e oleaca mai logic ce ai zis tu :))

 

for (i=2;i<=numeric_limits<double>::infinity();i++)

tot numi place ala, as fi facut ceva gen for(i=2;;i++)  astfel nu e nici o conditie de testat, e ca si cand ai pune for(i=2;true;i++)

pt ca oricum astepti "break" ca sa iesi..

sau direct 

for(i=2;s < n;i++)

eh, e dar cum as face eu, e bun si al tau. scz pt greseala de inainte :))

  • Upvote 2

love is a verb
Love is a doing word

Link to comment
Share on other sites

  • Moderators

O.O Deci pot baga in loc de numeric_limits<double>::infinity(), n>1 ??

 

Thx!!

 

Acum arata asa:

 

#include <iostream>
using namespace std;
int main()
{
    unsigned n,i,x,s=0,p;
    cout<<"n=";
    cin>>n;
    for (i=2;i>1;i++)
    {
        x=1;
        for (p=2;p<=i/2;p++)
            if (i%p==0)
                x=0;
        if (x==1)
        {
            cout<<i<<" ";
            s++;
            if (s==n)
                break;
        }
    }
    return 0;
}
  • Upvote 1
Link to comment
Share on other sites

  • Moderators

OK :).

 

Deci mai simplu decat

#include <iostream>
using namespace std;
int main()
{
    unsigned n,i=1,x,s=0,p;
    cin>>n;
    while (true)
    {
        i++;
        x=1;
        for (p=2;p<=i/2;p++)
            if (i%p==0)
                x=0;
        if (x==1)
        {
            cout<<i<<" ";
            s++;
            if (s==n)
                break;
        }
    }
    return 0;
}

se poate?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By +Stefan
      Am avut de rezolvat o problema interesanta (zic eu) si la care nu am vazut nicio rezolvare pe google, s-ar mai putea imbunatati ceva?
      5*.Implementați un program care citește din DATE.IN de pe prima linie un număr natural n iar de pe a doua linie, două numere naturale x și y (cu 1<=x<=n și 1<=y<=n). Programul va crea și va salva în fișierul REZULTAT.OUT o matrice pătratică de n x n elemente în care x și y reprezintă coordonatele capului unui avion; toate componentele avionului vor fi marcate cu X iar restul elementelor din matrice cu 0. Se știe că sub capul avionului aripile sunt unite în mod simetric pe 5 elemente, mai urmează în jos un element iar sub acel element coada avionului care este simetrică față de axă și formată din 3 elemente.
      Dacă nu este posibilă construirea unui avion atunci se va scrie în fișier “NU ESTE POSIBIL”.
      Ex: dacă x=3, y=1 și n=5 atunci soluția salvată în fișier va fi:
      https://imgur.com/a/WPeheYL
       
       
    • By Razvan250
      Salut.
      Sunt clasa a XII -a profil stiinte ale naturii si as vrea sa urmez informatica si as avea cateva intrebari:
      1. E greu de recuperat materia din liceu de la profilul de mate-info?
      2.As face fata daca as intra in Brasov / Cluj la o facultate de informatica ? ( La Cluj am vazut ca se da admitere din matematica si mi-ar fi mai usor, iar la Brasov cred ca intru sigur deoarece conteaza media de la bac si de la matematica )
      Ps: M-am apucat sa lucrez si am decis sa dau bacul la informatica ( mi se pare mult mai usor decat la celelalte si as putea sa iau 9 - 10, dar materia nu e la fel.. Materia de SN se opreste pe la vectori/matrice.. )
      Ce sfaturi ati putea sa imi dati? 
       
      // Edit : Aici este programa de bac Informatica 2018 daca vreti sa comparati cele 2 profile in raport cu ce se da la bac : click
    • By AlexandruX01
      Salut, nu as vrea sa deranjez administratorul forumului sau pe altcineva insa am si eu o curiozitate, eu stiu sa programez in C++ si cam atat stiu sa lucrez si in MatLab umpic dar este simplu. As dori sa stiu daca as putea sa imi gasesc un loc de munca stiind C++ sau daca ar fi macar un plus la C.V... Nu am diploma de licienta si nici nu am urmat o facultate pe profilul respectiv, am invatat acasa de  mic din propria initiativa si acuma nu stiu daca ma ajuta cu ceva sau nu. 
      Imi cer scuze daca deranjez pe cineva cu aceasta intrebare.
    • By AlexCosmin
      Nu ştiu dacă s-a mai discutat. Dar as vrea să vă pun câteva întrebari legate de programare.
      Ce limbaj de programare folosiți? 
      IDE sau editor text?
      Ştiu că aici părerile sunt împărțite. Unii spun că pentru un începător este mai bun un editor text ca să nu se învețe cu "automatizările" unui IDE. Eu am primit un răspuns care mi-a schimbat părerea. Cum că o greșeală de tastare te poate face apoi să pierzi o grămadă de timp şi nu înveți programare dacă în loc să-ti completeze IDE-ul un cuvânt îl scrii tu. Voi ce părere aveți? 
      Ce sistem de operare folosiți şi de ce?
       
    • By Huzam Mazuh
      Salutare,
       
      In luna Martie am lansat platforma cu cele mai multe joburi pentru tineri, numita SmartDreamers: http://smartdreamers.com/
       
      Constant avem aproximativ 50% din oferta de joburi din domeniul IT. In acest topic voi posta frecvent top joburi din IT, joburi individuale, interviuri cu IT-isti si alte informatii relevante pentru dezvoltarea personala si gasirea unui job.
       
      Incep cu 10 pozitii de Java Developers in Bucuresti, oferite de EEU Software: http://smartdreamers.com/en/job-Java-developer-EEU-Software-SRL/1470/
       
      Spor si o zi frumoasa!
       
       
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.