贵州高考成绩查询系统:在1至100的自然数中,不能被2整除,又不能被3整除,也不能被5整除的数,有几个?

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/29 00:58:10
要说清理由,说懂道理!思路不能死板欧!!!!!^-^
我知道四楼的那一种答案了,但是我的想法是能被2、3、5整除的有3个,那么不能的有97个!为什么和答案不一样?我认为我得更严谨!!!!!!!!!!!!!

2*3*5=30
所以1-100的自然数中不能被2整除,又不能被3整除,也不能被5整除的数是除30、60、90三个数外的97个数。

1至100中,能被2整除的有100÷2 = 50 (个);
1至100中,能被3整除的有: 33个 (100÷3 = 33 ……1);
1至100中,能被5整除的有:100÷5 = 20 (个);
1至100中,能被2和3整除的有:16个 100÷(3×2) = 16 …… 4);
1至100中,能被2和5整除的有:100÷(5×2) = 10 (个);
1至100中,能被3和5整除的有:6个 (100÷(3×5) = 6 …… 10);
1至100中,能被2,3和5整除的有:3个 (100÷(3×2×5)) = 3 …… 10);
故能被2,3,5中至少一个整除的数有:(50 + 33 + 20) – (16 + 10 + 6) + 3 = 74 (个)
所以,在1至100的自然数中,不能被2整除,
又不能被3整除,也不能被5整除的数有:100 – 74 = 26 (个)

答:1至100不能被2、3、5整除的数有26个。

我倒,题目的要求是“同时不能被2、3、5整除的数”,请注意那个“同时”,也就是说,只要能被其中的一个数字整除,那么这个数就不是该题的答案。例如:10即可以被2又能被5整除,那么就不满足条件,又如4,只能被2整除,那也不符合条件。

j88r,像你做的这种函数,我应该怎么用呢?复制然后保存成什么后缀的文件?

找了半天没找到一个可以在windows下可以用的编译器……

楼主的犯了这样的逻辑错误:!A && !B && !C = !(A && B && C)
正确的逻辑应该是:
!A && !B && !C = !(A && B && C || !A && B && C || A && !B && C || A && B && !C || !A && !B && C || !A&&B&&!C || A&&!B&&!C).

解法一 反解法
void main()
{
int i,d = 0;

for (i = 1;i <= 100;i = i+2)
{
if((i % 3 == 0) || (i % 5 == 0))d++;
}

d = 100 - 50 - d; / **********/
printf("%d\n",d);
}

解法二——正解法

void main()
{
int i,d=0;
for (i = 1;i <= 100;i = i+2)
{
if((i % 3 != 0) && (i % 5 != 0))d++;
}
printf("%d\n",d);
}

#include "stdio.h"
#include "conio.h"
main()
{
int c=0,i;
for(i=1;i<=100;i++)
{
if((i%2!=0)&&(i%3!=0)&&(i%5!=0))
{
c++;
printf("%d\t",i);
}
}
printf("\n共有%d个",c);
getch();
}
同意hiquan观点:) 我再给以说明

1至100中,能被2整除的有100÷2 = 50 (个);
1至100中,能被3整除的有: 33个 (100÷3 = 33 ……1);
1至100中,能被5整除的有:100÷5 = 20 (个);
1至100中,能被2和3整除的有:16个 100÷(3×2) = 16 …… 4);
1至100中,能被2和5整除的有:100÷(5×2) = 10 (个);
1至100中,能被3和5整除的有:6个 (100÷(3×5) = 6 …… 10);
1至100中,能被2,3和5整除的有:3个 (100÷(3×2×5)) = 3 …… 10);
以上不用说了吧
关键是下面的公式,应当这样理解,不能被2整除中有可以被3和5整除的数,同理3和5,所在50 + 33 + 20必然有几个重复的数所以要减去16 + 10 + 6(能被2、3或2、5或3、5整除的数),不过这(16 + 10 + 6)几个数的合中又有能同时被2、3、5整除的数,又多减了一个,所以要加回来就是下面这个公式,想像一下,就像三个圆相交一样。
故能被2,3,5中至少一个整除的数有:(50 + 33 + 20) – (16 + 10 + 6) + 3 = 74 (个)
所以,在1至100的自然数中,不能被2整除,
又不能被3整除,也不能被5整除的数有:100 – 74 = 26 (个)

这是C语言保存成.C然后找个编译器编译运行就可以了
Dev C++可以,VC也行就大了点