# Question: can someone help me with this c program im trying...

###### Question details

Can someone help me with this C program? I'm trying to confirm if an positive integer is even, prime, a perfect square, find the total bits it has, find the number of decimal digits it has, and the number of one bits it has. So far this is what I have, when I enter 21, everything runs except I get the number of decimal digits instead of the number of total bits also the program doesn't loop again to ask for another integer. When I enter 4, it tells me if it's prime, even, and a perfect square but that's it, and it wont loop back to ask for another integer. If you can, please explain where I am going wrong? (also,I cant use global variables, sqrt, or goto)

-------------------------------------------------------------------

#include <stdio.h> int main() { int number = 1; int count = 0; int Count = 0; int Count2 = 0; //This loop will continue unless the entered number is 0 while (0 < number) { printf("Enter an integer: "); scanf("%d", &number); // EVEN: This statement is true if the number is divisible by 2 if (number % 2 == 0) printf("Is the number even? yes\n"); else printf("Is the number even? no\n"); //PRIME: This section checks to see if a number is divisible by 1 and itself int i, flag = 0; for ( i = 2; i <= number / 2; ++i) { // condition for nonprime number if (number % i == 0) { flag = 1; break; } } //1 is not prime or composite if (number == 1) { printf("Is the number prime? no\n"); } else { if (flag == 0) printf("Is the number even? yes\n"); else printf("Is the number prime? no\n"); } //PERFECT SQUARE: This section checks for perfect squares for (i = 0; i <= number; i++) { if (number == i * i) { printf("Is the number a perfect square? yes\n"); return 0; } } printf("Is the number a perfect square? no\n"); //ALL BITS: This section counts the total number of bits while (number != 0) { if ((number & 0) == 0) Count++; number = number >> 1; } printf("The total number of bits is %d\n", Count); //1 BITS: This section counts the number of one bits while (number != 0) { if ((number & 1) == 1) count++; number = number >> 1; } printf("The number one's are %d\n", count); //DECIMAL DIGITS: This section counts the number of digits entered while (number != 1) { if ((number & 0) == 0) Count2++; number = number >> 1; } printf("The total number of digits is %d\n", Count2); } return 0; }