求1到n中能被3或7整除的数之和(while循环)
来源:学生作业帮助网 编辑:作业帮 时间:2024/09/22 11:34:32
#include/*用for循环实现*/voidmain(){\x09intn;\x09intm;\x09printf("pleaseinputn\n");\x09scanf("%d",&n);\x0
i=1:s=0:t=0:p=0Doifimod3=0thens=s+i:p=p+ielseifimod7=0thent=t+i:p=p+iendifi=i+1untili>1000(s表示能被3整除的
(500+333+200)-(166+100+66)+33,=1033-332+33,=734(个),答:1~1000中能被2或3或5整除的数有734个.
iTot=0Fori=1To100IfiMod5=0OriMod7=0TheniTot=iTot+iNextiPrintiTot结果是:1680【由于字数限制,去除了Sub,及变量定义】
intmain(void){\x09intsum=0,i;\x09for(i=1;i
int sum(int n){ List<int> list = new List
1-100不能被2整除,一共50个数能被3整除的数,可以这么理解,1*3,2*3,3*3.33*3,除去不能被2整除的,共17个能被5整除的数,1*5,2*5.20*5,除去其中能被2整除的共10个能
for(x=n;x>=3;x--)'判断的最小值为3,小于3的值就没有意义{if(!(xmod3)or!(xmod7))'被3除无余数或被7除无余数count+=x;}x=n;while(x-->=4
先分析一下逻辑,1到2008的自然数,先找能被2整除的数的集合设为A,在A中的数满足不能被3整除或不能被7整除中的一个条件就算满足题意.翻译成逻辑语言为:设i为一到2008中的自然数,如果i满足(i%
1到200之间,能被3整除有=198/3=66个1到200之间,能被21整除有=189/21=9个1到200之间,能被3整除但不能被7整除的数=能被3整除-能被21整除=66-9=57个count=0
500÷3=166...2能被3整除的数有166个500÷7=71...3能被7整除的数有71个500÷21=23...17能同时被3和7整除的数有23个166+71-23=214所以能被3或7整除的
s=0forn=1to100ifn%3=0orn%7=0s=s+n^2endifendforreturn
首先先说一下容斥原理:A∪B∪C=A+B+C-A∩B-A∩C-B∩C+A∩B∩C此处,可将A表示为能被3整除的数,也就是3的倍数;B表示为能被5整除的数,也就是5的倍数;C表示为能被7整除的数,也就是
能被3整除的,500/3,取整,166;能被5整除,100;能被7整除,71减去重复计算的既能被3整除,又能被5整除的,500/15,取整33减去重复计算的既能被3整除,又能被7整除的,500/21,
3×3=9∴10到99中能被3整除的数有33-3=30个7×1=7∴10到99中能被7整除的数有14-1=13个21×0=0∴10到99中能既能被3整除、又能被7整除的数有4-0=4个∴10到99中能
1000÷3=333余1即能被3整除的有333个1000÷7=142余6即能被7整除的有142个1000÷21=47余13即能同时被3和7整除的,有47个那么,能被3整除,或能被7整除的,有:333+
clearnum=0fori=100to300ifi%3=0ori%5=0num=num+1endifendfor"100到300之所有能被3或5整除的数的个数为:",num
能被3整除的数字共有:1000/3=333个能被5整除的数字共有:1000/5=200个能被7整除的数字共有:1000/7=142能同时被7和5整除的数:1000/35=28能同时被7和3整除的数:1
被2有:2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,6
这类题目有个通用解法:找出能被3,5整除,同时被7除余5的数,为15×5=75找出能被5,7整除,同时被3除余1的数,为35×2=70找出能被3,7整除,同时被5除余2的数,为21×2=4275+70