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

Am facut problema si nu iau 100 puncte. Am cautat si pe net .. dar tot nu iau 100. Am pus si conditia pentru ca numarul sa nu aiba ultima cifra 0 si tot nu imi da 100 puncte if(a%10==0). In CodeBlocks ruleaza perfect problema ,dar pe site tot 90 puncte imi da.

Anexe:

boiustef: pt a discuta cadul tau era bn sa atasezi fisierul tau main
boiustef: sper codul meu să ia 100, dacă vrei să discutăm codul meu, facem, dar pe al tău nu+l putem discuta că nu+l văd în totalitate ci trunchiat. Dacă ataşezi fişierul, atunci DA
GabiAlex99: Codul da, este de 100p (l-am testat eu) insa problema lui cred ca este ca nu a verificat cazu if (a<2) :))
boiustef: poate... nu vedem codul lui...
boiustef: si eu aici
for (d=3; d*d <= a; ++d)
tr sa scriu astfel
for (d=3; d*d<=a; d+=2)
deoarece cautam prim numai intre impare > 3

Răspunsuri la întrebare

Răspuns de boiustef
3

#include <iostream>

using namespace std;

int main()

{

   int a, d;

   cin >> a;

   int aprim=1;

   if (a<2) aprim=0;

   if (a>2)

   {

       if (a%2==0) aprim=0;

       else

       {

           for (d=3; d*d<=a; ++d)

           {

              if (a%d==0) { aprim=0; break; }

           }

       }

   }

   if (aprim==0) cout << "NU";

   else

   {

       int ogl=0;

       while (a>0)

       {

           ogl=ogl*10+a%10;

           a=a/10;

       }

       int oglprim=1;

       if (ogl<2) oglprim=0;

       if (ogl>2)

       {

           if (ogl%2==0) oglprim=0;

           else

           {

               for (d=3; d*d<=ogl; ++d)

               {

                   if (ogl%d==0) { oglprim=0; break; }

               }

           }

       }

       if (oglprim==0) cout << "NU";

       else cout << "DA";

   }

}


BigBenN: Multumesc ! Problema era cand ii dadeam valoarea 1.
boiustef: :))) nu eşti primul care uită de numerele 0 şi 1 care la fel sunt naturale
Alte întrebări interesante