문제 개요
숫자 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