Онлайн компилятор C

#include <stdio.h> int is2pow(int n) { if (n % 2 == 0) return 1; if (n % 2 != 0) return 0; } int main() { int x; scanf("%d", &x); printf("%d", is2pow(x)); return 0; }
This code attempts to check if a number is a power of two, but the logic in the function is incorrect. It only checks whether the number is even, not whether it is exactly a power of two.

- The function returns 1 for any even number, but many even numbers like 6 or 10 are not powers of two. You need to think about what property all powers of two share beyond just being even.
- Consider using a loop to repeatedly divide the number by 2, and check when to stop. What condition would tell you the number is a power of two?