Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #include <algorithm>
- #include <vector>
- using namespace std;
- int main()
- {
- unsigned long long int input[2], calc_square;
- while(scanf("\n%llu %llu", input[0], input[1]), input[0] || input[1])
- {
- printf("%llu %llu\n", input[0], input[1]);
- uint32_t distance_seq = 0;
- if(input[0] == input[1])
- {
- distance_seq += 2;
- break;
- }
- else
- {
- for(int i = 0; i < 2; i++)
- {
- char temp[100];
- vector<unsigned long long int> arr;
- arr.push_back(input[i]);
- for(int z = 0; ; z++)
- {
- calc_square = 0;
- sprintf(temp, "%llu", arr[i]);
- for(int x = 0; x < strlen(temp); x++)
- {
- calc_square += (temp[x] - 48) * (temp[x] - 48);
- }
- // search if already exist in our array
- vector<unsigned long long int>::iterator it = find(arr.begin(), arr.end(), calc_square);
- if(it != arr.end())
- {
- distance_seq += distance(arr.begin(), it);
- break;
- }
- else
- {
- arr.push_back(calc_square);
- continue;
- }
- }
- }
- }
- printf("%llu %llu %u\n", input[0], input[1], distance_seq);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement