Informatică, întrebare adresată de ingerasmicut10, 9 ani în urmă

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

Răspunsuri la întrebare

Răspuns de passbrain123
1
/* 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;
}
Anexe:

AntiEaglesDavids: dap, asa am crezut si eu pentru prima oara
Utilizator anonim: varianta lui AntiEagles era mai buna dar n-ai inteles unele notatii
AntiEaglesDavids: se putea si mai eficient chiar... cu un ciur pentru nr prime
Utilizator anonim: Eu le rezolv mai pe intelesul lor, chestii simple( care sunt echivalente ) scrise putin diferit decat cum au invatat ei la clasa e ceva de neinteles pt majoritatea..
AntiEaglesDavids: ciurul se face intr-a V-a din cate stiu....dar da, sunt de acord cu tine dar uneori chiar nu am timp sa scriu "didactic" asa ca bag viteza asa cum sunt obisnuit
AntiEaglesDavids: iar unde ei nu inteleg ma intreaba
AntiEaglesDavids: ce clasa esti Andy?
AntiEaglesDavids: a 12-a ?
Utilizator anonim: Nu:) sunt in anul 1 de facultate
AntiEaglesDavids: ah, scuze, nu stiu de ce aveam impresia
Răspuns de AntiEaglesDavids
1
#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;
}


alexubebe: daaa....de parca tu o rezolvai
AntiEaglesDavids: nuuu ba nu o rezolvam... fac probleme de judeteana-nationala la info si nuuuuu, in niciun caz nu rezolvam o amarata de probleme cu matrici de la bac
AntiEaglesDavids: problema*
AntiEaglesDavids: hai ca ti-am facut si problema asta "grea" cu matricea ca sa nu zici ca sunt nesimtit (desi tu inca nu mi-ai aratat rezolvarea la prima problema)

http://pastebin.com/WtZLdjcT
AntiEaglesDavids: 0 functii, 0 memorie aditionala, doar 2 for-uri, 3 conditionale, hope you're happy bro ^^
Utilizator anonim: L-ai pierdut pe alexubebe:)) Cred ca a incercat google translate:)))
Utilizator anonim: Si s-a lasat pagubas..
AntiEaglesDavids: :))))
Alte întrebări interesante