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

Cum se face problema 3? Help

Anexe:

Răspunsuri la întrebare

Răspuns de boiustef
1

Răspuns:

#include <iostream>

using namespace std;

long long n;

long long sPar(long long a)

{

   long long m=a;

   int gasit=0;

   if (m%2==1) ++m;

   else m+=2;

   do

   {

      long long s=0, d;

      for (d=2; d*d<m; ++d)

      if (m%d==0) { s=s+d+m/d; }

      if (d*d==m) s+=d;

      if (s%2==0) gasit=1;

      else m+=2;

   } while (!gasit);

   return m;

}

int main()

{

   cin >> n;

   cout << sPar(n);

}

Explicație:

am luat tipul long long gin considerente ca numarul cautat fiind mai mare ca 10^9 poate intrece int (da, poate nu ar intrece ... :)))

variabila m care ia valoarea numarului trimis in subprogram o initializez la primul par mai mare ca a, facem suma divizorilor proprii si daca e para, am gasit, de nu marim m cu 2 si repetare a verificarii  

Alte întrebări interesante