Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<cmath>
- using namespace std;
- /*Función que devuelve el resultado de a^b.
- Se supone que b es un número no-negativo.*/
- int potencia(int a, int b){
- int i, p=1;
- for(i=0;i<b;i++) p*=a;
- return p;
- }
- /*Función que devuelve true si el número n es primo, y false en caso contrario.
- Se supone que n es positivo.*/
- bool esPrimo(int n){
- if(n==1) return false;
- int i;
- for(i=2;i<=sqrt(n);i++) if(n%i==0) return false;
- return true;
- }
- /*Función que devuelve la cantidad de dígitos de un número n.
- Se supone que n es positivo.*/
- int cantDigitos(int n){
- int dig=0;
- while(n>0){
- dig++;
- n/=10;
- }
- return dig;
- }
- /*Función solicitada para el problema planteado.*/
- int cantNoPrimos_C_Digitos(int a, int b){
- int cont = 0;
- int aux;
- if(b > cantDigitos(a)){
- return -1;
- }
- while(a>0){
- aux = a%potencia(10,b);
- if(cantDigitos(aux)==b and !esPrimo(aux)){
- cont++;
- }
- a /= 10;
- }
- return cont;
- }
- /*Función principal*/
- int main(){
- int N,C;
- cin>>N>>C;
- cout<<"Cantidad de no-primos de "<<C<<" digitos: "<<cantNoPrimos_C_Digitos(N,C)<<endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement