Skip to content

Instantly share code, notes, and snippets.

@Silva97
Created May 15, 2018 18:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Silva97/65f6e9c85141cada3bd15b77b7861bd4 to your computer and use it in GitHub Desktop.
Save Silva97/65f6e9c85141cada3bd15b77b7861bd4 to your computer and use it in GitHub Desktop.
/********************
* Desenvolvido por Luiz Felipe
* https://github.com/Silva97
*
* Algoritmo feito em resolução de um desafio
* cujo o objetivo era apresentar o menor número
* de persistência indicada pelo usuário.
*
* Desafio no grupo Programação em C:
* - https://www.facebook.com/groups/414761988665865/permalink/1144414109033979/
********************/
#include <stdio.h>
#include <limits.h>
int persistence(int n);
int main(){
int x;
unsigned int i;
fputs("Número de persistências: ", stdout);
scanf("%d", &x);
for(i=10; i < UINT_MAX; i++){
if(persistence(i) == x){
printf("Menor número de persistência %d: %d\n", x, i);
break;
}
}
return 0;
}
int persistence(int n){
int mult = 1;
if(n < 10)
return 0;
do {
mult *= n%10;
} while(n /= 10);
if(mult < 10){
return 1;
} else {
return persistence(mult)+1;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment