1、 求从1到500的整数中,至少能被3或5或7之一整除的数的个数

急急急啊

能被3整除的,500/3,取整,166;能被5整除,100;能被7整除,71
减去重复计算的既能被3整除,又能被5整除的,500/15,取整33
减去重复计算的既能被3整除,又能被7整除的,500/21,取整23
减去重复计算的既能被7整除,又能被5整除的,500/35,取整14
能被3,5,7都整除的,加了3次减了3次,再加上,500/(3*5*7),取整,4
结果:166+100+71-33-23-14+4=271
答案是271
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-01-06
能够被3整除的有166个,能够整除5的就是末尾有0或者5的这样的数有500/10*2=100个(就是10个数里面只有2个可以整除5) 能够被7整除的有500/7=71.4
即 71个 好了,下面就是清除重复的即15、21、35、105
减去重复计算的既能被3整除,又能被5整除的,500/15,取整33
减去重复计算的既能被3整除,又能被7整除的,500/21,取整23
减去重复计算的既能被7整除,又能被5整除的,500/35,取整14
能被3,5,7都整除的,加了3次减了3次,再加上,500/(3*5*7),取整,4
结果:166+100+71-33-23-14+4=271
答案是271
第2个回答  2010-01-06
不能被3整除的数有500*2/3=334个
其中不能被5整除的有334*4/5=268个
其中不能被7整除的有334*6/7=287个
同时不能被5和7整除的有344*34/35=325个
所以不能被3,5,7整除的有268+287-325=230个
所以至少能被3或5或7之一整除的数的个数为500-230=270
第3个回答  2010-01-06
用容斥原理:求出分别能被3、5、7整除的数,再求出被15、21、35整除的数,再求出被105整除的数,这样个数就是:设s(n)为被n整除的个数。
s(3)+s(5)+s(7)-s(15)-s(21)-s(35)+s(105)
第4个回答  2010-01-06
#include <iostream>

using namespace std;

void main()
{
int i = 0, j = 0;

for(i = 1; i <= 500; i++)
{
if(i % 3 == 0 || i % 5 == 0 || i % 7 == 0)
j++;
}
cout << j << endl;

}
算500的话是271个
相似回答