Informatică, întrebare adresată de CristiMachine25, 9 ani în urmă

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 StarBack
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;
}

CristiMachine25: Cum pot sa votez cel mai bun raspun?
CristiMachine25: Si oricum multumesc foarte mult!!!
Alte întrebări interesante