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

Đếm các số trong phạm vi từ 1 đến N chia hết cho X nhưng không chia hết cho Y trong C ++

Chúng tôi được cung cấp một số N. Mục đích là tìm các số chia hết cho X chứ không chia hết cho Y và nằm trong phạm vi [1, N].

Hãy cùng hiểu với các ví dụ.

Đầu vào

N=20 X=5 Y=20

Đầu ra

Numbers from 1 to N divisible by X not Y: 2

Giải thích

Only 5 and 15 are divisible by 5 and not 10.

Đầu vào

N=20 X=4 Y=7

Đầu ra

Numbers from 1 to N divisible by X not Y: 5

Giải thích

Numbers 4, 8, 12, 16 and 20 are divisible by 4 and not 7.

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

  • Chúng tôi lấy một số nguyên N.

  • Hàm chia hết XY (int x, int y, int n) trả về số lượng các số từ 1 đến N chia hết cho X và không chia hết cho Y.

  • Lấy số lượng biến ban đầu là 0 cho những số như vậy.

  • Dải số theo chiều ngang bằng cách sử dụng vòng lặp for. i =1 đến i =n

  • Bây giờ, đối với mỗi số i, hãy kiểm tra xem (i% x ==0 &&i% y! =0), nếu số gia tăng là true.

  • Trả lại kết quả là số lượng.

Ví dụ

#include <bits/stdc++.h>
using namespace std;
int divisibleXY(int x, int y, int n){
   int count = 0;
   for (int i = 1; i <= n; i++) {
      if(i%x==0 && i%y!=0 )
         { count++; }
   }
   return count;
}
int main(){
   int N = 100;
   int X=6, Y=8;
   cout <<"Numbers from 1 to N which are divisible by X and not Y: "<< divisibleXY(X,Y,N);
   return 0;
}

Đầu ra

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

Numbers from 1 to N which are divisible by X and not Y: 12