Computer >> Máy Tính >  >> Lập trình >> C ++

Đếm số chia hết cho tất cả các số từ 2 đến 10 trong C ++

Chúng ta được cho một số, giả sử là num và nhiệm vụ là tính số lượng các số trong phạm vi 1 đến num chia hết cho 2, 3, 4, 5, 6, 7, 8, 9 và 10.

Đầu vào - int num =10000

Đầu ra - Đếm số chia hết cho các số từ 2 đến 10 là:3

Giải thích - Có 3 số từ 1 đến 10000 chia hết cho các số bắt đầu từ 2 đến 10 và đó là -

 2520-:1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 18, 20, 21, 24, 28, 30, 35, 36, 40, 42, 45, 56, 60, 63, 70, 72, 84, 90, 105, 120, 126, 140, 168, 180, 210, 252, 280, 315, 360, 420, 504, 630, 840, 1260, 2520,5040-:1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 24, 28, 30, 35, 36, 40, 42 , 45, 48, 56, 60, 63, 70, 72, 80, 84, 90, 105, 112, 120, 126, 140, 144, 168, 180, 210, 240, 252, 280, 315, 336, 360 , 420, 504, 560, 630, 720, 840, 1008, 1260, 1680, 2520, 50407560-:1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 18, 20, 21, 24, 27, 28, 30, 35, 36, 40, 42, 45, 54, 56, 60, 63, 70, 72, 84, 90, 105, 108, 120, 126, 135, 140, 168, 180, 189, 210, 216, 252, 270, 280, 315, 360, 378, 420, 504, 540, 630, 756, 840, 945, 1080, 1260, 1512, 1890, 2520, 3780. 

Đầu vào - int num =20000

Đầu ra - Đếm số chia hết cho các số từ 2 đến 10 là - 3

Giải thích - Có 7 số từ 1 đến 10000 chia hết cho tất cả các số bắt đầu từ 2 đến 10 và đó là - 2520, 5040, 7560, 10080, 12600, 15120 và 17640,

Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau

Có thể có nhiều cách tiếp cận để giải quyết vấn đề đã cho, tức là cách tiếp cận ngây thơ và cách tiếp cận hiệu quả. Vì vậy, trước tiên chúng ta hãy xem xét cách tiếp cận ngây thơ .

  • Nhập số, giả sử là num

  • Lấy một mảng và lưu trữ tất cả các số từ 2 đến 10 bên trong một mảng số nguyên có độ dài cố định là 9.

  • Lấy các biến tạm thời đầu tiên là đếm để lưu trữ tổng các số và một biến khác là cờ để kiểm tra xem số đó có chia hết được hay không.

  • Bắt đầu vòng lặp For từ i đến 1 cho đến số

  • Bên trong vòng lặp, đặt num thành i và lập chỉ mục thành 0

  • Bắt đầu trong khi cho đến khi chỉ mục nhỏ hơn 9 tức là kích thước của một mảng

  • Kiểm tra IF num% arr [index ++] ==0, sau đó đặt cờ là 1 Khác đặt cờ là 0

  • Kiểm tra cờ IF là 1 rồi tăng số lượng lên 1

  • Số lần trả lại

  • In kết quả.

Cách tiếp cận hiệu quả

Như chúng ta thấy có một mẫu số chia hết cho tất cả các số từ 2 đến 10.

Số nhỏ nhất chia hết cho các số từ 2 đến 10 là 2520

5 * 7 * 8 * 9 =2520 (n =1) 5 * 7 * 8 * 9 * 2 =5040 (n =2) 5 * 7 * 8 * 9 * 3 =7560 (n =3). .

Như chúng ta thấy 2520 là nhân tử chung của tất cả các số chia hết cho 2, 3, 4, 5, 6, 7, 8, 9, 10. Vì vậy, nếu chúng ta chia số đã cho cho 2520 chúng ta sẽ được kết quả.

Code-1 (cách tiếp cận ngây thơ)

Ví dụ

 #include  using namespace std; int count (int num) {int count =0; cờ int =0; int index =0; int arr [9] ={2, 3, 4, 5, 6, 7, 8, 9, 10}; for (int i =1; i <=num; i ++) {int num =i; chỉ số =0; while (index <9) {if (num% arr [index ++] ==0) {flag =1; } else {flag =0; phá vỡ; }} if (flag ==1) {count ++; }} trả về số đếm;} int main () {int num =10000; cout <<"Đếm các số chia hết cho các số từ 2 đến 10 là:" < 

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

 Đếm các số chia hết cho các số từ 2 đến 10 là:3 

Code-2 (Phương pháp Tiếp cận Hiệu quả)

Ví dụ

 #include  using namespace std; int main () {int num =10000; int count =num / 2520; cout <<"Đếm các số chia hết cho các số từ 2 đến 10 là:" < 

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

 Đếm các số chia hết cho các số từ 2 đến 10 là:3