diff options
Diffstat (limited to 'src/projecteuler/092.c')
| -rw-r--r-- | src/projecteuler/092.c | 45 |
1 files changed, 0 insertions, 45 deletions
diff --git a/src/projecteuler/092.c b/src/projecteuler/092.c deleted file mode 100644 index 8616cf8..0000000 --- a/src/projecteuler/092.c +++ /dev/null @@ -1,45 +0,0 @@ - - -const int limit = 10000000; - -const int squares[10] = { 0, 1, 4, 9, 16, 25, 36, 49, 64, 81 }; - -int next_chain(int number) -{ - int sum = 0; - int digit; - while(number > 0) - { - digit = number % 10; - number = number / 10; - sum += squares[digit]; - } - return sum; -} - -int main() -{ - int* numbers = calloc(limit, sizeof(int)); - int i, count; - - for(i=0; i<limit; i++) - numbers[i] = next_chain(i); - - count = 0; - - for(i=1; i<limit; i++) - { - int next = numbers[i]; - while(next != 1 && next != 89) - next = numbers[next]; - - numbers[i] = next; - if(next == 89) - count++; - } - - printf("%d\n", count); - - return 0; -} - |
