Din fisierul vector.in se citeste un vector cu n componente intregi,sa se formeze 2 vectori unul cu componente prime si unul fara componente prime si sa se afiseze pe randuri diferite in vector.out
Răspunsuri la întrebare
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("vector.in");
ofstream out("vector.out");
// Am folosit mai multe variabile ca sa nu te incurc. Puteam sa il fac mult mai simplist.
int main()
{
int a[100],n,prime[100],neprime[100], x=0, y=0, ok=0, k=0, i=0, v=0, p=0;
in>>n;
for(i=1;i<=n;i++) // in timp ce citim fiecare numar din fisier, il si verificam daca e prim
{
in>>a[i];
for(k=1;k<=a[i];k++) // parcurgem toate numerele de la 1 pana la el insusi
if(a[i]%k==0) // daca numarul citit se imparte la vreun numar pana la el, numaram cate numere sunt care indeplinesc conditia
ok++;
if(ok==2) // un numar e prim daca este divizibil cu 1 si cu el insusi.
{
x=x+1; // crestem pozitia in vector pentru a putea pune alte numere
prime[x]=a[i]; // daca este prim, punem numarul in alt vector care va avea doar numerele prime
}
if(ok>2)
{
y=y+1; // crestem pozitia in vector pentru a putea pune alte numere
neprime[y]=a[i];// daca nu este prim, punem numarul in vectorul neprime[]
}
ok=0; // initializam variabila ok cu 0 deoarece avem nevoie sa facem EXACT aceeasi pasi pentru urmatorul nuamr citit
// daca nu atribuiam valoarea 0 lui ok, atunci programul nostru afisa
}
for(v=1;v<=x;v++) // afisam in fisier numerele prime
out<<prime[v]<<" ";
out<<endl;
for(p=1;p<=y;p++) // afisam in fisier celelalte numere
out<<neprime[p]<<" ";
}