Informatică, întrebare adresată de andreea0413, 9 ani în urmă

Se citeste n. Sa se afiseze toate nr prime pana la n

Răspunsuri la întrebare

Răspuns de Iulica1
2
#include<iostream>
#include<math.h>
using namespace std;

int este_prim(int x)
{
int i;

for(i=2;i<=sqrt(x);i++)
{
               
if(x%i==0)
return 0;
               
else
return 1;
}
int main()
{

int n,i;

cout
<<"Dati n:";

cin
>>n;

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

       
if(este_prim(i))

            cout<<"Numarul"<<i<<"este prim.\n";

           
else cout<<"Numarul"<<i<<"nu este prim.\n";

return 0;
}

andreea0413: nu inteleg
Iulica1: Iti trebuie il alt limbaj?eu am facut pentru c++
artur99: wow cam greu cu timpul de executie... Puteai sa scapi usor de 50% din cazuri
Răspuns de AntiEaglesDavids
2
// Eratostene

#include <iostream>
#include <bitset>
using namespace std;
const int NMAX = 100005;

int n;
bitset<NMAX> sieve;

int main()
{
    cin >> n;
    for(int i=2; i<=n; i++) {
        if(!sieve[i]) {
            cout << i << ' ';
            for(int j=i+i; j<=n; j+=i)
                sieve[j] = true; }
    }
    return 0;
}





AntiEaglesDavids: la ce ai postat tu: scoate primul for si inlocuieste dupa conditia (i%j==0) j=i cu break;
AntiEaglesDavids: si pune-o intr-o funcite
AntiEaglesDavids: asta i-am spus si eu, ca nu conteaza aia ci algoritmul dar ea tot vrea mai usor...
AntiEaglesDavids: pai pana mea frate daca 5 randuri e complicat + ca algoritmul este pe net si se invata intr-a V-a atunci ma las de info
artur99: :)
andreea0413: nu conteaza, puteti sa imi corectati algoritmul va rog
AntiEaglesDavids: #include <iostream>
using namespace std;

int main()
{
int n, prim;

cin >> n;
for(int i=2; i<=n; i++) {
prim = 1;
for(int d=2; d*d<=i; d++)
if(i % d == 0) {
prim = 0;
break;
}
if(prim) cout << i << ' ';
}

return 0;
}
andreea0413: break ce inseamna?
AntiEaglesDavids: cu break iesi din for sau while
andreea0413: aha, inteleg, mersii
Alte întrebări interesante