👤

Se dau n perechi de numere naturale și pentru fiecare pereche (x,y) trebuie să se afle câte numere naturale nenule strict mai mici decât produsul x * y sunt prime cu x * y. in c++

Răspuns :

#include<iostream.h>
using namespace std 
struct pereche { int x ,y; } v[100];

//Urmatorul subprogram returneaza 1 daca a si b sunt prime intre ele
int pie (int a , int b ){int c;    while (b) {        c = a % b;        a = b;        b = c;    }    if(a==1) return 1 ;
          else
                 return a;}

//Urmatorul subprogram citeste cele n perechi 
void citire ( struct pereche v[100] ,  int & n ) {int i ;
       cin>>n;
      for(i=1;i<=n;i++){
          cin>>v[i].x;
          cin>>v[i].y;}}
/*Urmatorul subprogram determina cate numere naturale sunt prime cu produsul x*y pentru fiecare pereche din v. */

void numere( struct pereche v[100] , int n ){int i,j,nr;

       for(i=1;i<=n;i++){nr=0;
           for(j=1 ,j<v[i].x*v[i].y ;j++)
                  if(pie(j , v[i].x*v[i].y) ==1)
                            nr++;
          cout<<"Pentru perechea  ( " <<v[i].x<<','<<v[i].y<<") avem "<<nr<<"numere ";}

int main (){int n=0;
       citire (v,n);
      numere(v,n);
}