Bài 76: Kiểm tra số nguyên byte có dạng 3^k hay không #include #include int check(int n); int main() { int i; int max = 10000; printf("cac so co dang 3^k khoang [0, %d]:\n", max); for(i = 0; i < 10000; i++) check(i) ? getch(); printf("%5d", i) : printf(""); return 0; } /* Số có dạng 3^k 3^1 = 3^2 = 3^3 = 27 3^4 = 81 VD: kiểm tra số 81 81 % = 27 dư 27 % = dư % = dư % = dư => hết VD: kiểm tra số 12 12 % = dư % = dư ==> sai */ int check(int n) { int flag=1; n = n < ? -n : n; if(n < 2) return 1; /* while(n > 1) { if(n % 3) return 0; n /= 3; } return 1;*/ while(n > 1) { int du = n % 3; if(du != 0) // dư mà khác báo sai flag = 0; n /= 3; } if(flag==1) return 1; else return 0; }