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

Se consideră subprogramul pr, care primeşte prin intermediul parametrului a un număr
natural nenul cu cel mult 9 cifre şi returnează 1 dacă numărul este prim şi 0 în caz contrar.
a) Scrieţi numai antetul subprogramului pr. (4p.)
b) Considerăm un număr natural nenul n>99 cu cel mult 9 cifre. Din n se obţine un şir de
valori prin eliminarea succesivă a ultimei cifre, apoi a ultimelor două cifre, apoi a ultimelor
trei cifre etc., până se obţine un număr de două cifre, ca în exemplu.
Să se realizeze un program C/C++ care citeşte de la tastatură numărul n şi care, folosind
apeluri utile ale subprogramul pr, afişează pe ecran, separate prin câte un spaţiu, doar
valorile prime din şirul obţinut din n conform descrierii de mai sus.
Exemplu: pentru n=193124 se obţine şirul de valori 19312,1931, 193, 19 din care se vor
afişa pe ecran doar valorile 1931 193 19 (nu neapărat în această ordine).


serban1337: Btw, practic ce am facut eu acolo (presupun ca stii ce ii recursivitate), practic am luat numarul, l am transformat in string pentru optimizare dupaceea am luat prima cifra din string si anume t[0], dupaceea am folosit stoul pentru a transforma cifra/cifrele(in cazul acesta cifra) intr-un integer.

Răspunsuri la întrebare

Răspuns de serban1337
2

Răspuns:

Raspuns cu recursivitate a.k.a. mai optimizat

Explicație:

#include <iostream>

#include <cmath>

using namespace std;

int prim(int n)

{

   if(n<2)

       return 0;

   if(n==2)

       return 1;

   if(n%2==0)

       return 0;

   int d;

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

       if(n%d==0)

           return 0;

   return 1;

}

void recursiv(int n,int y)

{

   int lafel=y;

   string t,x;

   t=to_string(n);

   x=t;

   if(stoul(x)>=1&&prim(stoul(x))==1&&lafel!=n)

       cout<<x<<' ';

   if(n>0)

       recursiv(n/10,1);

}

int main()

{

   int n,y;

   cin>>n;

   y=n;

   recursiv(n,y);

   return 0;

}


serban1337: Daca is ceva probleme, scrie mi si le pot rezolva. Practic problema a fost rezolvata prin metoda de recursivitate
Alte întrebări interesante