问题标题: 酷町堂:1106 素数&&一个让我迷惑的操作

0
0
已解决
张恩泽
张恩泽
高级天翼
高级天翼

1106   素数经验值:0

题目描述 Description

期中考试刚刚结束,聪聪是班上的学习委员,可是这次数学成绩班上好多同学都考了满分,聪聪只考了 98 分,就错在一道求素数的题目上,题目是这样的:已知 N 和 M 两个正整数,求 N 至 M 之间(包括 N 和M)有多少个素数。聪聪觉得很懊恼,他决定必须研究清楚这个问题。由于聪聪今年刚加入学校的计算机兴趣班,于是他决定利用编程来解决这个问题,你能帮助他吗?

输入描述 Input Description

输入文件共一行:两个正整数 N 和 M,中间以一个空格隔开。

输出描述 Output Description

输出文件一个正整数:表示 N 至 M 之间(包括 N 和 M)的素数个数。

样例输入 Sample Input

3 7

样例输出 Sample Output

3

数据范围及提示 Data Size & Hint

【数据说明】
1≤N<M≤32767。

#include<iostream>
#include<cmath>
using namespace std;
int a[1000000];
int main()
{
    int n,m;
    cin>>n>>m;
    for(int i=2;i<=n;i++)
    {
        if(a[i]==0)
        {
            for(int j=i*2;j<=n;j+=i)
            {
                a[j]=1;
            }
        }
    }
    int cnt=0;
    for(int i=1;i<=n;i++)
    {
        if(a[i]==0)
        {
            cnt++;
        }
    }
    cout<<cnt;
    return 0;
}

错误代码如上

——————————————————————————————————————

给大家看一张图:

 

What??,自己采纳自己是什么神操作??

再送大家一个送分题(但也有可能是送命题)

这也......太......太________。(请在此处填空)

张恩泽在2020-07-29 22:49:59追加了内容

这又是什么鬼,不是提问了44个问题吗??


0
已采纳
徐子宸
徐子宸
中级天翼
中级天翼

这也……太……太秀了

0
0
高梓荣
高梓荣
新手天翼
新手天翼

太太太。。。了

还有没睡的吗😂

0
0
王子健
王子健
初级天翼
初级天翼

我不水了,我来回答你的问题:这题用函数它不香吗???

你非要用什么埃氏筛之类的干嘛(或者你们老师让你们用的),埃氏筛的我就不说,比较麻烦,我来说函数做法:

先写函数,判断素数

然后主循环内循环i:n~m

找素数,cnt ++

输出cnt,结束

 

但要切记,有特判条件的!!!例如n==1, m==1,你要输出0,还有循环里if的判断不仅仅是要素数判断,还要不等于1才行,continue就行了,具体代码如下:

函数部分:

主循环循环内部:

特判:

 

0
李素妍
李素妍
新手天翼
新手天翼

会用函数吗?

写个函数或写个埃式筛

我要回答