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

Se citeste un numar natural din [100,10000]. sa se afiseze toate cifrele prime ale numarului citit.Am incercat si eu in C++,dar nu stiu ce e gresit.

#include<iostream>using namespace std;int main (){int n,s,c,i;cout<<"Dati un numar natural din intervalul [100,10000]\n";cin>>n; s=0;while(n!=0){c=n%10; for(i=2;i<c/2;i++)    {if(c%i==0) s++; if(s==0) cout<<c<<' ';}}return 0;}


artur99: Ai uitat să ștergi ultima cifră
artur99: Să faci n = n/10
artur99: În acel while

Răspunsuri la întrebare

Răspuns de S0unds
1
#include <iostream>using namespace std;int main(){    int n,d,da;    cin>>n;    while(n!=0)    {        d=2;da=1;        while(d<=n/2)        {            if((n%10)%d==0)                da=0;            if(da==1)            {cout<<n%10<<' ';d=n/2;}            d=d+1;        }        n=n/10;    }    return 0;}
Anexe:

artur99: Cred că mai rapid ar fi cu if(c==2 || c == 3 || c == 5 || c == 7), fiind vorba de o singură cifră. :))
Alte întrebări interesante