Giả sử chúng ta có một số n, và chúng ta phải tìm hoán vị của số này, số đó chia hết cho 3 nhưng không chia hết cho 6. Nếu không có giá trị nào như vậy có thể trả về -1. Ví dụ:nếu n là 336, thì đầu ra có thể là 363.
Như đã biết một số chia hết cho 6 nghĩa là chia hết cho 3 và 2. Vậy mỗi số chẵn chia hết cho 3 thì sẽ chia hết cho 6. Nếu ta hoán đổi các chữ số của một số vừa chia hết cho 3 lại vừa chia hết. , để làm cho nó kỳ lạ, nó sẽ là kết quả.
Ví dụ
#include<iostream> #include<cmath> using namespace std; int findNumber(int n) { int digit_count = ceil(log10(n)); for (int i = 0; i < digit_count; i++) { if (n % 2 != 0) { return n; } else { n = (n / 10) + (n % 10) * pow(10, digit_count - i - 1); continue; } } return -1; } int main() { int n = 132; cout <<"The permutation of "<<n << " that is divisible by 3 but not by 6 is:"<< findNumber(n); }
Đầu ra
The permutation of 132 that is divisible by 3 but not by 6 is:213