Informatică, întrebare adresată de xEminescu123, 8 ani în urmă

#100pbinfo

Se citeşte n şi un şir de n numere naturale.

Cerinţa
Să se determine câte elemente din şir sunt numere prime.

Date de intrare
Fişierul de intrare nrapprime.in conţine pe prima linie numărul n şi pe a doua linie n numere naturale separate prin spaţii.

Date de ieşire
Fişierul de ieşire nrapprime.out va conţine pe prima linie un singur număr natural, reprezentând numărul de elemente prime din şir.

Restricţii şi precizări
0 < n < 100
numerele de pe a doua linie a fişierului de intrare vor fi mai mici decât 1.000.000.000



Exemplu
nrapprime.in

5
25 17 2 10 13
nrapprime.out

3
poate sa-mi dea cineva rezolvarea de 100p?


MariusCelTrifan: Pot sa-ti dau algoritmul, dar nu in fisier

Răspunsuri la întrebare

Răspuns de MariusCelTrifan
0

Răspuns:

#include <iostream>

using namespace std;

int main()

{

 unsigned int n,i,j,nr=0,X=0;

 cout<<"n=";

 cin>>n;

 int a[n];

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

 {

     cout<<"a["<<i<<"]=";

     cin>>a[i];

 }

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

 {

   for(j=2;j<=a[i]/2;j++)

   {

     if(a[i]%j==0)

   X++;

   }

   if(X==0)

       nr++;

   else

       X=0;

 }

 cout<<nr;

 return 0;

}

Explicație:


MariusCelTrifan: Eu nu am ajuns inca la fisier
Ovidiu0144: #include

using namespace std;
ifstream f("nrapprime.in");
ofstream g("nrapprime.out");
int prim(int x)
{
if(x<2)return 0;
for(int d=2;d*d<=x;d++)
if(x%d==0)return 0;
return 1;

}
int main()
{
int n,x,C=0;
f>>n;
for(int i=1;i<=n;i++)
{
f>>x;
if(prim(x))C++;
}
g<}
Ovidiu0144: g<
xEminescu123: nici eu, dar pe perioada asta, am primit probleme din astea, imi poti explica Ovidiu care este diferenta cu fisierul?
xEminescu123: si fara atatea returnuri si main uri poti sa o faci?
Ovidiu0144: eu am facut cu subprogram ca sa imi fie mai usor
Ovidiu0144: pt fisier iti trebuie biblioteca
Ele se deschid cu ifstream F-fisierul de citire si ofstream fisierul de afisare
Fisierele se folosesc in principal la concursuri ca sa le fie mai usor profesoriilor sa corecteze
ca sa citesti din fisier in loc de cin>>x pui f>>x
respectiv la afisare in loc de cout<
Ovidiu0144: pui g<
Ovidiu0144: biblioteca "fstream"
Ovidiu0144: si acesta ar fi problema fara subprogram
#include

using namespace std;
ifstream f("nrapprime.in");
ofstream g("nrapprime.out");
int main()
{
int n,x,C=0;
f>>n;
for(int i=1;i<=n;i++)
{
f>>x;
int ok=1;
if(x<2)ok=0;
for(int d=2;d*d<=x && ok==1;d++)
if(x%d==0)ok=0;
if(ok==1)C++;

}
g<}
Alte întrebări interesante