使用 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

解释 

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

输入 

N=20 X=4 Y=7

输出 

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

解释 

Numbers 4, 8, 12, 16 and 20 are divisible by 4 and not 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

更新时间: 2020-10-31

552 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告