计算可以被C ++中2到10的所有数字整除的数字
我们给定一个数字,即num,任务是计算1到num之间的数的数量,这些数可以被2、3、4、5、6、7、8、9和10整除。
输入-int num = 10000
输出-可以被2到10的所有数字整除的计数数字是:3
说明-从1到10000的3个数字可以被从2到10的所有数字整除,并且-
2520-: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 18, 20, 21, 24, 28, 30, 35, 36, 40, 42, 45, 56, 60, 63, 70, 72, 84, 90, 105, 120, 126, 140, 168, 180, 210, 252, 280, 315, 360, 420, 504, 630, 840, 1260, 2520.5040-: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 24, 28, 30, 35, 36, 40, 42, 45, 48, 56, 60, 63, 70, 72, 80, 84, 90, 105, 112, 120, 126, 140, 144, 168, 180, 210, 240, 252, 280, 315, 336, 360, 420, 504, 560, 630, 720, 840, 1008, 1260, 1680, 2520, 5040
7560-: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 18, 20, 21, 24, 27, 28, 30, 35, 36, 40, 42, 45, 54, 56, 60, 63, 70, 72, 84, 90, 105, 108, 120, 126, 135, 140, 168, 180, 189, 210, 216, 252, 270, 280, 315, 360, 378, 420, 504, 540, 630, 756, 840, 945, 1080, 1260, 1512, 1890, 2520, 3780.
输入-整数= 20000
输出-可以被2到10的所有数字整除的计数数字是-3
说明-从1到10000共有7个数字,它们可以被从2到10的所有数字整除,分别是-2520、5040、7560、10080、12600、15120和17640,
以下程序中使用的方法如下
解决给定问题的方法可以有多种,即幼稚方法和有效方法。因此,让我们首先来看一下幼稚的方法。
输入数字,例如num
取一个数组并将所有2到10的数字存储在固定长度为9的整数数组中。
取临时变量为第一个是count以存储数字的总数,另一个为标志以检查数字是否可整。
从i到1直到num的启动循环
在循环内,将num设置为i并将index设置为0
从开始直到索引小于9,即数组大小
检查IF num%arr [index ++] == 0,然后将标志设置为1否则将标志设置为0
检查IF标志是否为1,然后将计数加1
返回计数
打印结果。
高效的方法
我们可以看到,数字中存在一种模式,该模式可以被2到10的所有数字整除。
可从2到10的所有数字整除的最小数字是2520
5 * 7 * 8 * 9 = 2520(n = 1)5 * 7 * 8 * 9 * 2 = 5040(n = 2)
5 * 7 * 8 * 9 * 3 = 7560(n = 3)
.
.
如我们所见,2520是所有被2、3、4、5、6、7、8、9、10整除的数字的公因数。因此,如果将给定数字除以2520,我们将得到结果。
Code-1(幼稚的方法)
例
#include <bits/stdc++.h>using namespace std;
int count(int num){
int count = 0;
int flag=0;
int index=0;
int arr[9] = {2, 3, 4, 5, 6, 7, 8, 9, 10 };
for (int i = 1; i <= num; i++){
int num = i;
index=0;
while(index<9){
if(num % arr[index++] == 0){
flag=1;
}
else{
flag=0;
break;
}
}
if (flag == 1){
count++;
}
}
return count;
}
int main(){
int num = 10000;
cout<<"Count numbers which are divisible by all the numbers from 2 to 10 are: "<<count(num);
return 0;
}
输出结果
如果我们运行上面的代码,它将生成以下输出-
Count numbers which are divisible by all the numbers from 2 to 10 are: 3
Code-2(有效方法)
例
#include <bits/stdc++.h>using namespace std;
int main(){
int num = 10000;
int count = num / 2520;
cout<<"Count numbers which are divisible by all the numbers from 2 to 10 are: "<<count;
return 0;
}
输出结果
如果我们运行上面的代码,它将生成以下输出-
Count numbers which are divisible by all the numbers from 2 to 10 are: 3
以上是 计算可以被C ++中2到10的所有数字整除的数字 的全部内容, 来源链接: utcz.com/z/343652.html