diff --git a/DIRECTORY.md b/DIRECTORY.md index b2daa5f9..801bffb8 100644 --- a/DIRECTORY.md +++ b/DIRECTORY.md @@ -324,6 +324,7 @@ * [Sol](https://github.com/TheAlgorithms/C/blob/master/project_euler/problem_6/sol.c) * Problem 7 * [Sol](https://github.com/TheAlgorithms/C/blob/master/project_euler/problem_7/sol.c) + * [Sol2](https://github.com/TheAlgorithms/C/blob/master/project_euler/problem_7/sol2.c) * Problem 8 * [Sol1](https://github.com/TheAlgorithms/C/blob/master/project_euler/problem_8/sol1.c) * [Sol2](https://github.com/TheAlgorithms/C/blob/master/project_euler/problem_8/sol2.c) diff --git a/project_euler/problem_7/sol.c b/project_euler/problem_7/sol.c index 917aac10..406ece7a 100644 --- a/project_euler/problem_7/sol.c +++ b/project_euler/problem_7/sol.c @@ -1,11 +1,14 @@ /** * \file - * \brief [Problem 7](https://projecteuler.net/problem=7) solution + * \brief [Problem 7](https://projecteuler.net/problem=7) solution. + * @see Another version: problem_7/sol2.c */ #include #include -/** Main function */ +/** Main function + * @return 0 on exit + */ int main(void) { char *sieve; diff --git a/project_euler/problem_7/sol2.c b/project_euler/problem_7/sol2.c new file mode 100644 index 00000000..c5eebad4 --- /dev/null +++ b/project_euler/problem_7/sol2.c @@ -0,0 +1,38 @@ +/** + * \file + * \brief [Problem 7](https://projecteuler.net/problem=7) solution. + * @see Faster version problem_7/sol.c + */ +#include + +/** Main function + * @return 0 on exit + */ +int main() +{ + int n; + scanf("%d", &n); + int number_of_prime = 0; + for (int i = 2;; i++) + { + int divisors = 0; + for (int j = 1; j <= i; j++) + { + if (i % j == 0) + { + divisors++; + } + } + if (divisors == 2) + { + number_of_prime++; + if (number_of_prime == n) + { + printf("%d", i); + break; + } + } + } + + return 0; +}