Informatică, întrebare adresată de DugleMugleNugget, 8 ani în urmă

URGENT!!! 45 DE PUNCTE!!

Se citesc din FIS.IN numere naturale nenule. Sa se afiseze in FIS.OUT, pe linii separate, fiecare numar citit, urmat de media aritmetica a divizorilor proprii / respectiv mesajul "FARA div prop".

Răspunsuri la întrebare

Răspuns de Paddon
1

#include <iostream>

#include <fstream>

using namespace std;

bool is_prime(int number)

{

if (number <= 1)

 return false;

if (number == 2)

 return true;

if (number % 2 == 0)

 return false;

int divisor = 3;

while (divisor * divisor <= number)

{

 if (number % divisor == 0)

  return false;

 divisor += 2;

}

return true;

}

int main()

{

ifstream fin("DATE.IN");

ofstream fout("DATE.OUT");

int numar;

while (fin >> numar)

{

 int suma = 0;

 int numar_divizori = 0;

 if (is_prime(numar))

  fout << numar << " FARA div prop";

 else if (numar % 2 == 0)

 {

  int divizor = 2;

  while (divizor * divizor < numar)

  {

   if (numar % divizor == 0)

   {

    suma = suma + divizor + (numar / divizor);

    numar_divizori += 2;

   }

   ++divizor;

  }

  if (divizor * divizor == numar)

  {

   suma += divizor;

   ++numar_divizori;

  }

  fout << numar << " " << (float) suma / numar_divizori;

 }

 else

 {

  int divizor = 3;

  if (numar == 1)

   suma = 1;

  else

  {

   while (divizor * divizor < numar)

   {

    if (numar % divizor == 0)

    {

     suma = suma + divizor + (numar / divizor);

     numar_divizori += 2;

    }

    divizor += 2;

   }

   if (divizor * divizor == numar)

   {

    suma += divizor;

    ++numar_divizori;

   }

   fout << numar << " " << (float) suma / numar_divizori;

  }

 }

 fout << endl;

}

}


dianaflorinastan: Inventii dupa inventii!
dianaflorinastan: In fine dute si pa!
Paddon: Ah, 2 zile mai tarziu imi spui sa ma duc, de parca n-am fost deja :))
dianaflorinastan: Of , da draga!
dianaflorinastan: Noapte buna!
dianaflorinastan: O seara frumoasa! Te pup !
dianaflorinastan: Vorbim maine daca este pa seara!
dianaflorinastan: Buna! Ce faci?
Paddon: Salut, bine, tu?
dianaflorinastan: Bine.Pe acasa
Alte întrebări interesante