Jump to content

Recommended Posts

  • Moderators
Posted

Enunţ: Scrieţi în C/C++ un algoritm care afişează cel mai mic număr prim, mai mare decât un număr dat n.

 

Ştiu că nu e cel mai bun cod, dar l-am făcut singur (mărog, nu ştiam cum să fac să repete de la n la infinit, dar am găsit cu mama google).

 

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

P.S. Mai exista alta modalitate de oprire a unei secvente repetitive cu numar necunoscut de pasi, inafara de return 0; ?

Posted

OK=1;

if (i%2==0 && i!=2)

OK=0;

else

d=3;

Nu prea aveai nevoie de partea asta, nu inteleg cu ce te ajuta. Pleci pur si simplu cu ok=0 sau 1, nu are importanta doar sa stii sa-l opresti, si d=2 si faci algoritmul de la numar prim.

PS: Daca nu stii un anumit lucru, gandeste-te cum altfel ai putea ajunge la rezultatul dorit, mai ales daca e tema, ai tot timpul... uite, un algoritm mai simplu, asa as fi facut eu daca eram tu:

#include<iostream>

using namespace std;

int main()

{int x, n, d=2;

cin>>n;

x=n+1;

while(d<=x/2) if(x%d==0) {x++;

d=2;}

else d++;

if(d==(x/2)+1) cout<<x;

}

Intelegi si singur ce face, sper.

  • Upvote 1

fWy1P.gif

 

  • Moderators
Posted

Mno, eu nu stiu cum se folosesc algoritmurile pentru numere prime, si l-am invatat pe de rost pe cel din clasa, si ma folosesc de el tot timpul :)

Posted

Eh, tre' sa si intelegi ce fac... daca inveti pe de rost nu-ti va ajuta mai tarziu, asa faceam si eu si mi-a fost greu, abea acum intra 12a mi s-a dat mana cat de cat.

  • Upvote 1

fWy1P.gif

 

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • 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.