👤

Sa se afiseze toate numerele mai mici sau egale decat n ce au suma cifrelor numar prim.

Răspuns :

/* Sa se afiseze toate numerele mai mici sau egale decat n ce au suma cifrelor numar prim.*/
#include <iostream.h>
int sumCif(int n) {
   int s=0;

   while (n) {

      s+=n%10;

      n/=10;

   }

return s;
}

int estePrim(int n) {
    int ok=1, i=2;

    if (n<2) return 0;

    else if (n==2) return 1;
 
           else while (ok && (i<=n/2)) {

                        if (n%i==0) ok=0;

                        i++;
 
                  }
   
    return ok;
}

int main() {
    int n;

    cout<<"n=";

    cin>>n;

    if (n>=2)
for (int i=2;  i<=n; i++) {
         int s=sumCif(i);
         
         if (estePrim(s)) cout<<" "<<i; }
   else cout<<"Dati un numar mai mare decat 2";
return 0;
}
Vezi imaginea Passbrain123
#include<iostream>
using namespace std;

int prim(int n)
{
    if(n == 0 || n == 1) return 0;
    for(int d=2; d*d<=n; d++)
        if(n % d == 0) return 0;
    return 1;
}

int s(int n)
{
    int sm = 0;
    while(n) sm += n % 10, n /= 10;
    return sm;
}

int main()
{
    int n;
    cin >> n;
    for(int i=2; i<=n; i++)
        prim(s(i)) ? cout << i << ' ' : true;
    return 0;
}