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

Se citesc de la tastatura n numere naturale, cu cel mult 9 cifre fiecare. Scrieti un program care pentru o cifra k citita de la tastatura, afiseaza pe ecran cate numere prime in scrierea carora apare cifra k, se gasesc in sirul dat.
Exemplu.: pentru n=4 , cifra k=2 si valorile citite 23, 603, 122, 27 se obtine numarul nr = 1, care corespunde valorii 23 .

Răspunsuri la întrebare

Răspuns de raulardelean10
1

Răspuns:

#include <iostream>

#include <cmath>

#include <algorithm>

#include <fstream>

#include <bitset>

#include <vector>

#include <cstring>

using namespace std;

vector<int> a(1001);

int k,ind=0,nr=0;

bool adv(int n)

{

while(n)

{

if(n%10==k)

return 1;

n/=10;

}

return 0;

}

bool prim(int n)

{

if(n<=3)

return n>=2;

if(n%2==0 || n%3==0)

return 0;

for(int d=5;d*d<=n;d+=6)

if(n%d==0 || n%(d+2)==0)

return 0;

return 1;

}

int n,x;

int main()

{

cin>>n>>k;

for(int i=1;i<=n;i++)

{

cin>>x;

if(adv(x))

if(prim(x))

a[ind++]=x,nr++;

}

cout<<nr<<'\n';

for(int i=0;i<ind;i++)

cout<<a[i]<<' ';

return 0;

}

Alte întrebări interesante