Cerinţa
Se dă un șir cu n numere naturale. Determinați numărul total de cifre al tuturor numerelor prime din șir.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale.
Date de ieşire
Programul afișează pe ecran numărul C, reprezentând numărul total de cifre al tuturor numerelor prime din șir.
Restricţii şi precizări
1 ≤ n ≤ 1000
cele n numere citite vor fi mai mici decât 1.000.000.000
Răspunsuri la întrebare
#include <iostream>
using namespace std;
// Variabila n memoreaza cate numere trebuie citite;
// Variabila gasit memoreaza la cate numere se imparte numarul citite;
// Variabila C memoreaza numar total de cifre al numerelor prime citite;
/* Variabila cifra memoreaza ultima cifra a fiecarui numar pentru a putea
număra cate cifre are fiecare numar prim;*/
// Variabila copie memoreaza fiecare numar citit pentru a nu distruge numerele.
int main()
{
int n, gasit=0, numar=0, C=0, cifra=0,copie=0;
cin>>n;
while(n!=0)
{
cin>>numar;
for(int i=1;i<=numar;i++)
{
//instructiunea merge pana la numar/2 deoarece nu pot exista divizori proprii intre numar/2 si numar
if (numar%i==0)//conditia ca numar sa fie divizor propriu al lui numar
gasit++;
}
if(gasit==2)
{
copie=numar;
// algoritmul de trunchiere ( determinarea cifrelor unui numar )
while(copie!=0)
{
cifra=copie%10;
C++;
copie=copie/10;
}
}
gasit=0;
n--;
}
cout<<"Sunt "<<C<<" cifre din toate numerele prime";
}
#include <iostream>
using namespace std;
bool prim(int m)
{
if (m==0 || m==1) return false;
if (m==2) return true;
if (m>2)
{
if (m%2==0) return false;
else
{
for (int i=3; i*i<=m; ++i)
if (m%i==0) return false;
}
return true;
}
}
int nrcifre(int m)
{
int c=1;
while (m>9)
{
++c; m/=10;
}
return c;
}
int main()
{
int n, i, num, cifre=0;
cin >> n;
for (i=1; i<=n; ++i)
{
cin >> num;
if (prim(num))
cifre+=nrcifre(num);
}
cout << cifre;
return 0;
}