Informatică, întrebare adresată de MădălinaSpiridon, 9 ani în urmă

Cerinţa Se citește numărul natural n. Să se afișeze, în ordine crescătoare, numerele naturale mai mici decât n cu proprietatea că pătratul și cubul lor nu au cifre comune. Date de intrare Programul citește de la tastatură numărul n. Date de ieşire Programul afișează pe ecran numerele cerute, în ordine crescătoare, separate prin exact un spațiu. Restricţii şi precizări 1 ≤ n ≤ 1000 Exemplu Date de intrare 20 Date de ieșire 2 3 8 9 14

Răspunsuri la întrebare

Răspuns de blindseeker90
7
#include <iostream>
using namespace std;

//functie care verifica faptul ca cifra c 
//se afla in numarul n
int cifra_in_numar(int numar,int c){
while(numar>0){
if(c==numar%10){
return 1;
}
numar=numar/10;
}
return 0;
}

int main(){
//conditie: daca e 1, atunci nu sunt cifre comune
//afisam numarul, altfel inseamna ca sunt cifre comune, nu afisam
int n,i,c,patrat,cub,conditie;
cin>>n;
for(i=2;i<n;i++){
conditie=1;
patrat=i*i;
cub=i*i*i;
while(cub>0){
c=cub%10;
if(cifra_in_numar(patrat,c)==1){
conditie=0;
//daca exista o cifra comuna, nu mai are rost sa continuam cu whileul
//asa ca folosesc breakul pentru a iesi din bucla while
break;
}
cub=cub/10;
}
if(conditie==1){
cout<<i<<" ";
}
}

return 0;
}
Alte întrebări interesante