Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 주어진 범위에서 A 또는 B의 총 제수 계산


4개의 정수 L, R, A, B가 주어집니다. 목표는 [L,R] 범위에서 A나 B 또는 둘 다를 완전히 나누는 숫자의 개수를 찾는 것입니다.

L에서 R로 순회하고 number%A==0 또는 number%B==0인 경우 각 숫자에 대해 제수 수를 증가시켜 이를 수행합니다.

예를 들어 이해합시다.

입력 - L=10, R=15, A=4, B=3

출력 − A 또는 B의 제수 개수 − 2

설명 -

Number 12 is fully divisible by 3 and 4.
Number 15 is fully divisible by 3 only.
Total divisors=2

입력 - L=20, R=30, A=17, B=19

출력 − A 또는 B의 제수 개수 − 0

설명 − 20에서 30 사이에 A나 B 또는 둘 다로 완전히 나누어 떨어지는 수는 없습니다.

아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.

  • 4개의 변수 A, B, L 및 R을 사용했습니다.

  • countDivisors(int l, int r, int a, int b) 함수는 모두 입력으로 받아 [L, R] 범위에 있는 A 또는 B 또는 둘 다의 제수를 반환합니다.

  • 초기 카운트를 0으로 합니다.

  • i=L에서 시작하여 i=R로, i%a==0 또는 i%b==0인 경우 증분 카운트입니다.

  • 루프의 끝에서 A 또는 B의 제수로 계산합니다.

  • 결과로 카운트를 반환합니다.

예시

#include <bits/stdc++.h>
using namespace std;
int countDivisors(int l, int r, int a,int b){
   int count = 0;
   for (int i = l; i <= r; i++){
      if(i%a==0 || i%b==0)
         { count++ ; }
   }
   return count;
}
int main(){
   int L=5;
   int R=15;
   int A=2;
   int B=5;
   cout <<endl<< "Total divisors of A and B : "<<countDivisors(L,R,A,B);
   return 0;
}

출력

위의 코드를 실행하면 다음 출력이 생성됩니다 -

Total divisors of A and B : 7