👤

1. Să se determine cea mai mică valoare a lui p pentru care 2p ≥ n, unde n se citește de la tastatură. De exemplu, dacă se citește n = 30, se va afișa 5, deoarece 25≥ 30, 5 fiind cea mai mică putere pentru care se verifică această inegalitate.


2. Se citește de la tastatură un număr natural n. Să se afișeze mesajul DA dacă numerele n și oglinditul lui n sunt prime între ele (cel mai mare divizor comun al lor este 1) sau NU în caz contrar. De exemplu, n=21 și oglinditul lui 12 nu sunt prime între ele, cmmdc(21, 12) = 3 ≠ 1.
Va rog mult sa ma ajutati. Am nevoie urgent si sa fie rezolvate in C++.


Răspuns :

Răspuns:

1.

#include <iostream>

using namespace std;

int main()

{

   int n,a=1,i=1;

   cin>>n;

   for(i=0;a<=n;i++)

   {

       a*=2;

   }

   cout<<i;

   return 0;

}

2.

#include <iostream>

using namespace std;

int pal(int n)

{

   int cif,pal=0;

   while(n>0)

   {

       cif=n%10;

       n/=10;

       pal=pal*10+cif;

   }

   return pal;

}

bool prim(int a, int b)

{

   int r;

   while(b)

   {

   r=a%b;

   a=b;

   b=r;

   }

   if (a == 1) return true;

   else return false;

}

int main()

{

   int a,b;

   cin>>a>>b;

   if(prim(pal(a),pal(b))==true)cout<<"DA";

   else cout<<"NU";

   return 0;

}