Se consideră subprogramul divizori, cu patru parametri:
• n, prin care primeşte un număr natural (n∈[2,106]);
• x, y și z, prin care furnizează câte un divizor al lui n (0
Scrieţi definiţia completă a subprogramului.
Exemplu: pentru numărul n=24, în urma apelului, x=4, y=8 şi z=12, iar pentru numărul n=9, în urma apelului, x=0, y=0 şi z=0.
Utilizator anonim:
daca nu are trei divizori distincti, x,y,z primesc 0 ?
Răspunsuri la întrebare
Răspuns de
5
Ceva e gresit in problema sau nu a fost scris cerinta corect. 3 divizori ai lui 24 sunt 12 8 6.
O solutie ar fii:
#include <iostream>
using namespace std;
void divizori(int n, int &x, int&y,int &z)
{
int ok1=0,ok2=0,ok3=0;
x=0;y=0;z=0;
for(int i=n/2;i>=2;i--)
{
if(n%i==0)
{
if(ok1==1&&ok2==1&&ok3==0)
{
ok3=1; z=i;
}
if(ok1==1&&ok2==0&&ok3==0)
{
ok2=1; y=i;
}
if(ok1==0&&ok2==0&&ok3==0)
{
ok1=1; x=i;
}
}
}
}
int main()
{
int n,x,y,z;
cin>>n;
divizori(n,x,y,z);
cout<<" "<<x<<" "<<y<<" "<<z;
}
O solutie ar fii:
#include <iostream>
using namespace std;
void divizori(int n, int &x, int&y,int &z)
{
int ok1=0,ok2=0,ok3=0;
x=0;y=0;z=0;
for(int i=n/2;i>=2;i--)
{
if(n%i==0)
{
if(ok1==1&&ok2==1&&ok3==0)
{
ok3=1; z=i;
}
if(ok1==1&&ok2==0&&ok3==0)
{
ok2=1; y=i;
}
if(ok1==0&&ok2==0&&ok3==0)
{
ok1=1; x=i;
}
}
}
}
int main()
{
int n,x,y,z;
cin>>n;
divizori(n,x,y,z);
cout<<" "<<x<<" "<<y<<" "<<z;
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă