Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++로 1부터 N까지 X로는 나누어지지만 Y로는 나누어지지 않는 수 세기

문제 개요

숫자 N이 주어졌을 때, 1부터 N까지의 범위에서 X로는 나누어지지만 Y로는 나누어지지 않는 수의 개수를 구하는 것이 목표입니다.

예제를 통해 자세히 살펴보겠습니다.

입력

N=20 X=5 Y=20

출력

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

설명

5와 15만 5로 나누어지면서 20으로는 나누어지지 않습니다.

입력

N=20 X=4 Y=7

출력

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

설명

4, 8, 12, 16, 20은 모두 4로 나누어지며 7로는 나누어지지 않습니다.

접근 방식

  • 정수 N을 입력받습니다.

  • divisibleXY(int x, int y, int n) 함수는 1부터 N까지의 수 중 X로는 나누어지지만 Y로는 나누어지지 않는 수의 개수를 반환합니다.

  • 개수를 저장할 변수 count를 0으로 초기화합니다.

  • for 반복문을 사용하여 i=1부터 i=n까지 범위를 순회합니다.

  • 각 숫자 i에 대해 조건 (i%x==0 && i%y!=0)을 검사하고, 참이면 count를 증가시킵니다.

  • 최종적으로 count를 결과로 반환합니다.

예제 코드

#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;
}

실행 결과

위 코드를 실행하면 다음과 같은 출력이 생성됩니다 −

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