Din fișierul prime.in , se citesc 2 numere naturale a, b. Dacă cele două numere sunt prime între ele, atunci să se calculeze suma cifrelor celor 2 numere altfel să se
descompună în factori prim numărul mai mare.
Rezultatul->prime.out;
VA ROG TARE MULT !!!
DAU COROANA SI 25 PUNCTE!!!
Răspunsuri la întrebare
Răspuns de
1
Salut. Uite aici rezolvarea problemei. Succes in continuare!
#include "stdafx.h"
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("prime.in");
ofstream out("prime.out");
bool Prime(int a, int b)
{
int x, y, r;
x = a;
y = b;
while (y > 0)
{
r = x % y;
x = y;
y = r;
}
return (x == 1);
}
int Suma(int numar)
{
int s = 0;
while (numar)
{
s += numar % 10;
numar /= 10;
}
return s;
}
void Descompunere(int numar)
{
int p;
int d = 2;
while (numar > 1)
{
p = 0;
while (numar % d == 0)
{
p++;
numar = numar / d;
}
if (p)
{
out << d << "^" << p << endl;
}
d++;
}
}
int main()
{
int a, b;
in >> a >> b;
if (Prime(a, b))
{
out << Suma(a) << " " << Suma(b);
}
else
{
if (a < b)
{
Descompunere(b);
}
else
{
Descompunere(a);
}
}
return 0;
}
#include "stdafx.h"
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("prime.in");
ofstream out("prime.out");
bool Prime(int a, int b)
{
int x, y, r;
x = a;
y = b;
while (y > 0)
{
r = x % y;
x = y;
y = r;
}
return (x == 1);
}
int Suma(int numar)
{
int s = 0;
while (numar)
{
s += numar % 10;
numar /= 10;
}
return s;
}
void Descompunere(int numar)
{
int p;
int d = 2;
while (numar > 1)
{
p = 0;
while (numar % d == 0)
{
p++;
numar = numar / d;
}
if (p)
{
out << d << "^" << p << endl;
}
d++;
}
}
int main()
{
int a, b;
in >> a >> b;
if (Prime(a, b))
{
out << Suma(a) << " " << Suma(b);
}
else
{
if (a < b)
{
Descompunere(b);
}
else
{
Descompunere(a);
}
}
return 0;
}
CristiMachine25:
Cum pot sa votez cel mai bun raspun?
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă