求1到1000能同时被3 5 7整除的数的个数

作者&投稿:陈没底 (若有异议请与网页底部的电邮联系)
输出1~1000之间能同时被3、5、7整除的数,要求每行输出3个数,请编写一个程序实现,怎么改~

可以采用以下的代码:
#include
void main()
{
int n;
int countPerLine = 0;
for(n=1;n<=1000;n++)
{
if (n%3!=0)
continue;
if (n%5!=0)
continue;
if (n%7!=0)
continue;
printf("%8d",n);
if (++countPerLine >= 3)
{
printf("
");
countPerLine = 0;
}
}
printf("
");
}

扩展资料:
基本类型
数据类型指明变量或表达式的状态和行为,数据类型决定了数的取值范围和允许执行的运算符集。c++语言数据类型可以分为两大类:基本类型和引用类型。
C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。
C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。
C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。
参考资料来源:百度百科-C++





var arr=[];//先声明一个空数组
for(var i=1;i<1000;i++)
{
if(i%3==0 && i%5==0)//如果这个数能被3和5整除
{
arr.unshift(i);//就写入空数组
}
}

var line=Math.ceil(arr.length/6);//每一行6个,算出总共的行数,向上取整

for(var j=1;j<line;j++)//行数循环,有line行,循环line次
{
for(var k=0;k<6;k++)
{
document.write(arr[k]+',');//每次从数组里取出一个数字,取6次用逗号连接并输出
}
document.write('');//换行
arr.splice(0,6);//删除已经取出的元素
}

for(var i=0;i<arr.length;i++)//最后剩余的元素不满六个,输出即可
{
document.write(arr[i]+',');
}




运行后的结果:
990,975,960,945,930,915,
900,885,870,855,840,825,
810,795,780,765,750,735,
720,705,690,675,660,645,
630,615,600,585,570,555,
540,525,510,495,480,465,
450,435,420,405,390,375,
360,345,330,315,300,285,
270,255,240,225,210,195,
180,165,150,135,120,105,
90,75,60,45,30,15,

能被3整除的数字共有:1000/3=333个
能被5整除的数字共有:1000/5=200个
能被7整除的数字共有:1000/7=142
能同时被7和5整除的数:1000/35=28
能同时被7和3整除的数:1000/21=47
能同时被5和3整除的数:1000/15=66
能同时被3、5、7整除的数有:1000/105=9
所以不能被3、5、7任何一个数整除的数共有:1000-(333+200+142-28-47-66+2*9)=448个

A∩B∩C
呵呵~~~
还有个方法~ 因为 3 5 7 互为质数 ,那么能被它整除的数 必须被 3*5*7 = 105 整除~
那么1~1000 里能被105 整除的个数有 1000/105 = 9 余 55
即9 个 分别是: 105,2*105 ,3*105, 4*105 ,5* 105 6 *105 7*105 8*105 9*105~

必然是 3*5*7=105 的整数倍

105 210 315 ... 945 一共9个

3,5和7的最小公倍数=3*5*7=105

1000÷105=9……55

1到1000能同时被3 5 7整除的数的个数9个

9,我用程序算出来的。