Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <math.h>
- #include <stdio.h>
- #include <stdlib.h>
- int checkDupe(int);
- int checkSquare(int);
- int checkZeros(int);
- int main(void)
- {
- int index;
- int counter = 0;
- for (index = 111111111; index < 1000000000; index++)
- {
- if ((checkZeros(index) == 1) && (checkSquare(index) == 1)
- && (checkDupe(index) == 1))
- {
- counter++;
- printf("%d. %d\n", counter, index);
- }
- }
- }
- int checkDupe(int number)
- {
- char strNum[10];
- char charNum;
- int dupeArr[10];
- int numsPlace[10];
- int index, dupes = 0;
- int isValid = 1;
- //convert to a string
- for(index = 9; index >= 0; index--)
- {
- numsPlace[index] = number % 10;
- number = number / 10;
- strNum[index] = numsPlace[index] + 48;
- }
- //initialize the array. 10 = intArray.length
- for (index = 0; index < 10; index++)
- {
- dupeArr[index] = 0;
- }
- //count how many of each number are in the string
- for (index = 0; index < strlen(strNum); index++)
- {
- charNum = strNum[index];
- switch (charNum)
- {
- case '0':
- dupeArr[0]++;
- break;
- case '1':
- dupeArr[1]++;
- break;
- case '2':
- dupeArr[2]++;
- break;
- case '3':
- dupeArr[3]++;
- break;
- case '4':
- dupeArr[4]++;
- break;
- case '5':
- dupeArr[5]++;
- break;
- case '6':
- dupeArr[6]++;
- break;
- case '7':
- dupeArr[7]++;
- break;
- case '8':
- dupeArr[8]++;
- break;
- case '9':
- dupeArr[9]++;
- break;
- default:
- break;
- }
- }
- //If there is more than 1 in any place, it's a duplicate
- for (index = 0; index < 10; index++)
- {
- if (dupeArr[index] >= 2)
- {
- isValid = 0;
- }
- }
- return isValid;
- }
- int checkZeros(int number)
- {
- char strNum[10];
- char charNum;
- int index;
- int numsPlace[9];
- int isValid = 1;
- //convert to a string
- for(index = 8; index >= 0; index--)
- {
- numsPlace[index] = number % 10;
- number = number / 10;
- strNum[index] = numsPlace[index] + 48;
- }
- //check if there are any zeros
- for (index = 0; index < 10; index++)
- {
- charNum = strNum[index];
- if (charNum == '0')
- isValid = 0;
- }
- return isValid;
- }
- int checkSquare(int number)
- {
- int sqRoot = (int)sqrt(number);
- int isPerfect = 0;
- if ((sqRoot * sqRoot) == number)
- isPerfect = 1;
- else
- isPerfect = 0;
- return isPerfect;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement