fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4. using namespace std;
  5.  
  6. // Hàm sinh tất cả các số dạng chỉ chứa các chữ số {0, 1} có tối đa 9 chữ số
  7. void generateNumbers(vector<long long>& numbers, int limit) {
  8. for (int i = 1; i < (1 << limit); ++i) { // Duyệt qua tất cả các số nhị phân có độ dài tối đa "limit"
  9. long long num = 0;
  10. for (int j = 0; j < limit; ++j) {
  11. if (i & (1 << j)) {
  12. num = num * 10 + 1; // Chỉ thêm chữ số 1 vào số
  13. } else {
  14. num = num * 10; // Chỉ thêm chữ số 0 vào số
  15. }
  16. }
  17. numbers.push_back(num);
  18. }
  19. }
  20.  
  21. int main() {
  22. int n;
  23. cin >> n; // Đọc số nguyên dương n
  24.  
  25. vector<long long> numbers;
  26. generateNumbers(numbers, 9); // Sinh tất cả các số có tối đa 9 chữ số
  27.  
  28. // Sắp xếp các số theo thứ tự tăng dần và loại bỏ các phần tử trùng lặp
  29. sort(numbers.begin(), numbers.end());
  30. numbers.erase(unique(numbers.begin(), numbers.end()), numbers.end());
  31.  
  32. // Duyệt qua các số trong vector để tìm số đầu tiên chia hết cho n
  33. for (long long num : numbers) {
  34. if (num % n == 0) {
  35. cout << num << endl; // In ra số nhỏ nhất chia hết cho n
  36. return 0;
  37. }
  38. }
  39.  
  40. return 0; // Trường hợp không tìm thấy (không bao giờ xảy ra với n <= 100)
  41. }
  42.  
Success #stdin #stdout 0.01s 5284KB
stdin
6
stdout
1110