👤

Un număr natural în baza 10 se numește prețios dacă numărul de cifre ale sale din baza 2 este număr prim.

Se dă un interval [a,b].Determinați câte numere prețioase se află în acest interval.
Help pls.


Răspuns :

#include<iostream>
 using namespace std;
 int main()
 {int a,b,i,x,k,y,p,d,c,ok;
cin>>a>>b;
 c=0;
 for(i=a;i<=b;i++)
{ y=0;
  p=1;
   x=i;
   k=0;
  while(x!=0)
       { y=y+p*(x%2);
       x=x/2;
       p=p*10;
        k++; }
 ok=0;
 for(d=2;d<=k/2;d++)
 if(k%d==0)ok=1;
  if (k!=2 && ok==0) c++; }

cout<<c;

 return0;
}