Created
May 15, 2018 18:25
-
-
Save Silva97/65f6e9c85141cada3bd15b77b7861bd4 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/******************** | |
* 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