Skocz do zawartości

[Problem] liczby pierwsze c++


Rekomendowane odpowiedzi

Witajcie. Mam problem z programem sprawdzającym czy w wypisanych tablicach znajdują się liczby pierwsze. Oto mój kod:

#include<iostream>
#include<math.h>

using namespace std;
int main()
{
   int a[100]; 
   a[0]=2040;
   a[1]=4107;
   a[2]=2340;
   a[3]=4563;
   a[4]=8520;
   a[5]=7640;
   a[6]=8382;
   a[7]=4810;
   a[8]=8963;
   a[9]=2623;
   a[10]=5381;
   a[11]=9356;
   a[12]=723;
   a[13]=7713;
   a[14]=4715;
   a[15]=9384;
   a[16]=3869;
   a[17]=1510;
   a[18]=4482;
   a[19]=4787;
   a[20]=5564;
   a[21]=4134;
   a[22]=466;
   a[23]=343;
   a[24]=6769;
   a[25]=7567;
   a[26]=1671;
   a[27]=3863;
   a[28]=2531;
   a[29]=2816;
   a[30]=6411;
   a[31]=411;
   a[32]=4645;
   a[33]=6219;
   a[34]=4829;
   a[35]=6639;
   a[36]=5684;
   a[37]=2181;
   a[38]=2361;
   a[39]=9367;
   a[40]=2156;
   a[41]=5622;
   a[42]=932;
   a[43]=1432;
   a[44]=3788;
   a[45]=9087;
   a[46]=8262;
   a[47]=7368;
   a[48]=1967;
   a[49]=3416;
   a[50]=8139;
   a[51]=1404;
   a[52]=6092;
   a[53]=8326;
   a[54]=9198;
   a[55]=9854;
   a[56]=2636;
   a[57]=4844;
   a[58]=2153;
   a[59]=9427;
   a[60]=7967;
   a[61]=8814;
   a[62]=5758;
   a[63]=8308;
   a[64]=9400;
   a[65]=3724;
   a[66]=667;
   a[67]=7348;
   a[68]=3831;
   a[69]=5221;
   a[70]=9091;
   a[71]=9031;
   a[72]=1860;
   a[73]=84;
   a[74]=1528;
   a[75]=4945;
   a[76]=4505;
   a[77]=4544;
   a[78]=8749;
   a[79]=7248;
   a[80]=8042;
   a[81]=3686;
   a[82]=5405;
   a[83]=5400;
   a[84]=3608;
   a[85]=7292;
   a[86]=4217;
   a[87]=4891;
   a[88]=8660;
   a[89]=4600;
   a[90]=7815;
   a[91]=4622;
   a[92]=5508;
   a[93]=6128;
   a[94]=9721;
   a[95]=6270;
   a[96]=9260;
   a[97]=3720;
   a[98]=8907;
   a[99]=4668;

   int i=2,j;
   for(j=0;j<100;j++)
    {
    	if(a[j]%i)
    	{i++;}
    }
	if (i==a[j])
	{
	cout<<"liczba pierwsza";
	}
	else
	{
	cout<<"liczba nie jest pierwsza";
	}

  return 0;

}

Najpierw napisałem program sprawdzający czy dana liczba jest pierwsza i działa on poprawnie:

#include <iostream>

using namespace std;

int main()
{
int i=2,n;
cout<<"podaj liczbe"<<endl;
cin>>n;
while (n % i){
i++;}
if (i==n)
{
cout<<"liczba pierwsza";
}
else
{
cout<<"liczba nie jest pierwsza";
}
return 0;
}

Bardzo proszę was o pomoc, gdyż dostałem to na zadanie domowe i ma być to gotowe na jutro. Z góry dziękuje za pomoc i za każdą udzieloną odpowiedź.

Pumpernikiell.png


Odnośnik do komentarza
Udostępnij na innych stronach

Zamknąłeś pętlę for i nie wsadziłeś do niej coutów. O to chodzi?

#include <iostream>
#include <math.h>

using namespace std;
int main()
{
   int a[100];
   a[0]=2040;
   a[1]=4107;
   a[2]=2340;
   a[3]=4563;
   a[4]=8520;
   a[5]=7640;
   a[6]=8382;
   a[7]=4810;
   a[8]=8963;
   a[9]=2623;
   a[10]=5381;
   a[11]=9356;
   a[12]=723;
   a[13]=7713;
   a[14]=4715;
   a[15]=9384;
   a[16]=3869;
   a[17]=1510;
   a[18]=4482;
   a[19]=4787;
   a[20]=5564;
   a[21]=4134;
   a[22]=466;
   a[23]=343;
   a[24]=6769;
   a[25]=7567;
   a[26]=1671;
   a[27]=3863;
   a[28]=2531;
   a[29]=2816;
   a[30]=6411;
   a[31]=411;
   a[32]=4645;
   a[33]=6219;
   a[34]=4829;
   a[35]=6639;
   a[36]=5684;
   a[37]=2181;
   a[38]=2361;
   a[39]=9367;
   a[40]=2156;
   a[41]=5622;
   a[42]=932;
   a[43]=1432;
   a[44]=3788;
   a[45]=9087;
   a[46]=8262;
   a[47]=7368;
   a[48]=1967;
   a[49]=3416;
   a[50]=8139;
   a[51]=1404;
   a[52]=6092;
   a[53]=8326;
   a[54]=9198;
   a[55]=9854;
   a[56]=2636;
   a[57]=4844;
   a[58]=2153;
   a[59]=9427;
   a[60]=7967;
   a[61]=8814;
   a[62]=5758;
   a[63]=8308;
   a[64]=9400;
   a[65]=3724;
   a[66]=667;
   a[67]=7348;
   a[68]=3831;
   a[69]=5221;
   a[70]=9091;
   a[71]=9031;
   a[72]=1860;
   a[73]=84;
   a[74]=1528;
   a[75]=4945;
   a[76]=4505;
   a[77]=4544;
   a[78]=8749;
   a[79]=7248;
   a[80]=8042;
   a[81]=3686;
   a[82]=5405;
   a[83]=5400;
   a[84]=3608;
   a[85]=7292;
   a[86]=4217;
   a[87]=4891;
   a[88]=8660;
   a[89]=4600;
   a[90]=7815;
   a[91]=4622;
   a[92]=5508;
   a[93]=6128;
   a[94]=9721;
   a[95]=6270;
   a[96]=9260;
   a[97]=3720;
   a[98]=8907;
   a[99]=4668;

   int i=2,j;
   for(j=0;j<100;j++)
    {
    	if(a[j]%i)
    	{i++;}

        if (i==a[j])
        {
        cout<<"liczba pierwsza\n";
        }
        else
        {
        cout<<"liczba nie jest pierwsza\n";
        }
    }

  return 0;

}

Odnośnik do komentarza
Udostępnij na innych stronach

Łapaj

#include <iostream>
#include <math.h>

using namespace std;

int a[100];
int i=2,j;

bool czy_pierwsza(int liczba)
{
    int xx = 2;
    int s = sqrt(liczba);
    if(xx <= s)
    {
        if(!(liczba%xx++))
        {
            return false;
        }
    }
    return true;
}

int main()
{

    a[0]=2040;
   a[1]=4107;
   a[2]=2340;
   a[3]=4563;
   a[4]=8520;
   a[5]=7640;
   a[6]=8382;
   a[7]=4810;
   a[8]=8963;
   a[9]=2623;
   a[10]=5381;
   a[11]=9356;
   a[12]=723;
   a[13]=7713;
   a[14]=4715;
   a[15]=9384;
   a[16]=3869;
   a[17]=1510;
   a[18]=4482;
   a[19]=4787;
   a[20]=5564;
   a[21]=4134;
   a[22]=466;
   a[23]=343;
   a[24]=6769;
   a[25]=7567;
   a[26]=1671;
   a[27]=3863;
   a[28]=2531;
   a[29]=2816;
   a[30]=6411;
   a[31]=411;
   a[32]=4645;
   a[33]=6219;
   a[34]=4829;
   a[35]=6639;
   a[36]=5684;
   a[37]=2181;
   a[38]=2361;
   a[39]=9367;
   a[40]=2156;
   a[41]=5622;
   a[42]=932;
   a[43]=1432;
   a[44]=3788;
   a[45]=9087;
   a[46]=8262;
   a[47]=7368;
   a[48]=1967;
   a[49]=3416;
   a[50]=8139;
   a[51]=1404;
   a[52]=6092;
   a[53]=8326;
   a[54]=9198;
   a[55]=9854;
   a[56]=2636;
   a[57]=4844;
   a[58]=2153;
   a[59]=9427;
   a[60]=7967;
   a[61]=8814;
   a[62]=5758;
   a[63]=8308;
   a[64]=9400;
   a[65]=3724;
   a[66]=667;
   a[67]=7348;
   a[68]=3831;
   a[69]=5221;
   a[70]=9091;
   a[71]=9031;
   a[72]=1860;
   a[73]=84;
   a[74]=1528;
   a[75]=4945;
   a[76]=4505;
   a[77]=4544;
   a[78]=8749;
   a[79]=7248;
   a[80]=8042;
   a[81]=3686;
   a[82]=5405;
   a[83]=5400;
   a[84]=3608;
   a[85]=7292;
   a[86]=4217;
   a[87]=4891;
   a[88]=8660;
   a[89]=4600;
   a[90]=7815;
   a[91]=4622;
   a[92]=5508;
   a[93]=6128;
   a[94]=9721;
   a[95]=6270;
   a[96]=9260;
   a[97]=3720;
   a[98]=8907;
   a[99]=4668;

    for(j=0;j<100;j++)
    {
        if(czy_pierwsza(a[j]))
            cout << "Liczba pierwsza\n";
        else
            cout << "Liczba nie jest pierwsza!\n";
    }
    return 0;
}

Odnośnik do komentarza
Udostępnij na innych stronach

@Sopelek tag, właźnie xDD

#include <iostream>
#include <math.h>

using namespace std;

int a[100];
int i=2,j;

bool czy_pierwsza(int liczba)
{
    int xx = 2;
    int s = sqrt(liczba);
    while(xx <= s)
    {
        if(!(liczba%xx++))
        {
            return false;
        }
    }
    return true;
}

int main()
{

    a[0]=2040;
   a[1]=4107;
   a[2]=2340;
   a[3]=4563;
   a[4]=8520;
   a[5]=7640;
   a[6]=8382;
   a[7]=4810;
   a[8]=8963;
   a[9]=2623;
   a[10]=5381;
   a[11]=9356;
   a[12]=723;
   a[13]=7713;
   a[14]=4715;
   a[15]=9384;
   a[16]=3869;
   a[17]=1510;
   a[18]=4482;
   a[19]=4787;
   a[20]=5564;
   a[21]=4134;
   a[22]=466;
   a[23]=343;
   a[24]=6769;
   a[25]=7567;
   a[26]=1671;
   a[27]=3863;
   a[28]=2531;
   a[29]=2816;
   a[30]=6411;
   a[31]=411;
   a[32]=4645;
   a[33]=6219;
   a[34]=4829;
   a[35]=6639;
   a[36]=5684;
   a[37]=2181;
   a[38]=2361;
   a[39]=9367;
   a[40]=2156;
   a[41]=5622;
   a[42]=932;
   a[43]=1432;
   a[44]=3788;
   a[45]=9087;
   a[46]=8262;
   a[47]=7368;
   a[48]=1967;
   a[49]=3416;
   a[50]=8139;
   a[51]=1404;
   a[52]=6092;
   a[53]=8326;
   a[54]=9198;
   a[55]=9854;
   a[56]=2636;
   a[57]=4844;
   a[58]=2153;
   a[59]=9427;
   a[60]=7967;
   a[61]=8814;
   a[62]=5758;
   a[63]=8308;
   a[64]=9400;
   a[65]=3724;
   a[66]=667;
   a[67]=7348;
   a[68]=3831;
   a[69]=5221;
   a[70]=9091;
   a[71]=9031;
   a[72]=1860;
   a[73]=84;
   a[74]=1528;
   a[75]=4945;
   a[76]=4505;
   a[77]=4544;
   a[78]=8749;
   a[79]=7248;
   a[80]=8042;
   a[81]=3686;
   a[82]=5405;
   a[83]=5400;
   a[84]=3608;
   a[85]=7292;
   a[86]=4217;
   a[87]=4891;
   a[88]=8660;
   a[89]=4600;
   a[90]=7815;
   a[91]=4622;
   a[92]=5508;
   a[93]=6128;
   a[94]=9721;
   a[95]=6270;
   a[96]=9260;
   a[97]=3720;
   a[98]=8907;
   a[99]=4668;

    for(j=0;j<100;j++)
    {
        if(czy_pierwsza(a[j]))
            cout << "Liczba pierwsza\n";
        else
            cout << "Liczba nie jest pierwsza!\n";
    }
    return 0;
}

Odnośnik do komentarza
Udostępnij na innych stronach

Czy to koniecznie musi być w petli for? Bo jak nie to łapaj

#include <iostream>

 

using namespace std;

 

int main()
{
bool czyjest = true;
int licznik = 0, liczba = 2;

while (licznik < 10) // ilość liczb pierwszych
{
czyjest = true;
int i = 2;
while (i <= liczba-1)
{
if (liczba % i == 0)
{
czyjest = false;
break;
}
i++;
}
if (czyjest)
{
licznik++;
cout << liczba << endl;
}
liczba++;
}

return 0;
}
Wybacznie ale nie wiem jak wstawieć w te okienka jak wy.
Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający forum [Problem] liczby pierwsze c++   0 użytkowników
    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...