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

Am de rezolvat cateva exercitii, si nu le inteleg in totalitate:
1) Numara valorile din (a;b) care au toate cifrele pare.
2) Afiseaza suma cifrelor fiecarui numar din (a;b] ce au exact 3 divizori.

Răspunsuri la întrebare

Răspuns de boiustef
1

Răspuns:

#include <iostream>

using namespace std;

int main()

{

   int a,b,num,cif,contor=0, pare, x;

   cin >> a >> b;

   for (num=a+1; num<b; num++)

   {

       pare=1;

       x=num;

       while (x>0)

       {

           cif=x%10;

           if (cif%2==1)

           {

               pare=0; break;

           }

           x=x/10;

       }

       if (pare==1) ++contor;

   }

   cout << contor;

   return 0;

}

Explicație:

problema2. exact 3 divizori au numai patratele numerelor prime, 4, 9, 25, 49, 121, 169, ...

#include <iostream>

#include <cmath>

using namespace std;

int prim(int x)

{

   int p=1;

   if (x<2) p=0;

   else

   {

       if (x>2)

       {

           if (x%2==0) p=0;

           else

           {

               for (int d=3; d*d<=x; d+=2)

               {

                   if (x%d==0)

                   {

                       p=0; break;

                   }

               }

           }

       }

   }

   return p;

}

int main()

{

   int a,b,num, suma=0, x, c;

   cin >> a >> b;

   for (num=a+1; num<=b; num++)

   {

       x=sqrt(num); c=num;

       if (x*x==num && prim(x))

       {

           while (c)

           {

               suma=suma+c%10;

               c=c/10;

           }

       }

   }

   cout << suma;

   return 0;

}

Alte întrebări interesante