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

Se citește un vector cu n⩽100 elemente întregi.
Să se elimine din vector elementele care au suma cifrelor număr prim.
Să se ordoneze descrescător după prima cifra.
Să se insereze după fiecare număr par un 0.
Va rog, URGENT!

Răspunsuri la întrebare

Răspuns de DFH2511
0

Răspuns:

#include <iostream>

#include <cmath>

using namespace std;

int V[105], S[105];

bool ePrim(int n)

{

   if(n==0)

   {

       return false;

   }

   else if(n==1)

   {

       return false;

   }

   else if(n==2)

   {

       return true;

   }

   else if(n%2==0)

   {

       return false;

   }

   else

   {

       int radn=sqrt(n);

       bool isPrime=true;

       for(int i=3; i<=radn; i+=2)

       {

           if(n%i==0)

           {

               isPrime=false;

               break;

           }

       }

       if(isPrime==true)

       {

           return true;

       }

       else

       {

           return false;

       }

   }

}

int primaCif(int a)

{

   int ras=0;

   while(a!=0)

   {

   ras=ras*10+a%10;

   a=a/10;

   }

  return ras%10;

}

int sumCif(int a)

{

   int sum=0;

   while(a)

   {

       sum+=a%10;

       a/=10;

   }

   return sum;

}

int main()

{

int n;

cin>>n;

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

{

   cin>>V[i];  

}

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

{

    if(ePrim(sumCif(V[i]))==false)

    {

        for(int j=0; j<n; j++)

        {

            for(int k=j+1; k<n; k++)

            {

                if(primaCif(V[j])<primaCif(V[k]))

                {

                    swap(V[j], V[k]);

                }

            }

        }

    }

}

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

{

    if(ePrim(sumCif(V[i]))==false)

    {

        if(V[i]%2==0)

        {

           cout<<V[i]<<" ";

           cout<<0<<" ";

        }

        else

        {

            cout<<V[i]<<" ";

        }

    }

}

   return 0;

}

Explicație:

Sper ca ii ok :)

Alte întrebări interesante