👤

Scrieti un algoritm in C++ care citeste de la tastatura doua valori naturale a si b si scrie valorile din intervalul (a,b) care au in urma descompunerii in factori primi un numar impar de factori primi aflati la putere para

Răspuns :

#include <bits/stdc++.h>

using namespace std;

void f(int x, int v1[], int v2[], int &k)

{

   int d=2,p;

   while(x>1)

   {

       p=0;

       while(x%d==0)

       {

           x/=d;

           p++;

       }

       if(p)

       {

           v1[k]=d;

           v2[k]=p;

           k++;

       }

       d++;

   }

}

int main()

{

   int a,b,v1[100]={0},v2[100]={0},k=0;

   cin>>a>>b;

   for(int i=a;i<=b;i++)

   {

       k=0;

       bool impar=false,putere=true;

       f(i,v1,v2,k);

       if(k%2==1)

           impar=true;

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

           if(v2[i]%2==1)

               putere=false;

       if(putere==true && impar==true)

           cout<<i<<" ";

   }

   return 0;

}

Vezi imaginea BogdanNuExista