Cerinţa (pb 163 pe pbinfo)
Se dă un vector cu n elemente numere naturale. Să se șteargă din vector toate elementele care sunt numere prime.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spaţii, reprezentând elementele vectorul.
Date de ieşire
Programul afișează pe ecran, separate prin spații, elementele vectorului obținut prin ștergerea elementelor prime.
Restricţii şi precizări
0 < n ≤ 1000
elementele vectorului vor fi mai mici decât 230
Ce este gresit la algoritmul meu?? Imi da 80 de puncte din 100
#include
using namespace std;
int main()
{ int n, i, v[1000], d, k, j;
cin>>n;
for(i=0; i >v[i];
i=0;
while(i{
int nr=0;
for( d=2; d*d <= v[i]; d++)
{
if(v[i]%d==0)
nr++;
}
if((nr==0)&&(v[i]!=1))
{ k=i;
for(j=k+1; j v[j-1]=v[j];
n--;
}
else i++;
}
for(i=0; i cout<
return 0;
}
lucaciucandrei:
ai pus un cod naspa... nu prea inteleg dar iti voi da solutia mea de 100 de puncte
Răspunsuri la întrebare
Răspuns de
4
COROANA
#include <iostream>
using namespace std;
int main() {
int n, v[1001];
cin >> n;
for (int i = 1; i <= n; i++)
cin >> v[i];
for (int i = 1; i <= n; i++) {
int cv = v[i], d = 2, k = 1;
while (cv > 1) {
int p = 1;
while (cv % d == 0) {
cv /= d;
p++;
}
k *= p;
d++;
if (d * d > cv)
d = cv;
}
if (k == 2) {
for (int j = i + 1; j <= n; j++)
v[j - 1] = v[j];
n--;
i--;
}
}
for (int i = 1; i <= n; i++)
cout << v[i] << " ";
return 0;
}
Alte întrebări interesante
Istorie,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă