哪位大神帮个忙(c++)?

供稿:hz-xin.com     日期:2025-01-13

首先根据质数筛法,用数组prime标记0~100000中的所有质数,prime[i]==1表示i为质数

然后将prime数组转为前缀和数组,即令prime[i]等于prime[0]~prime[i]之和

表示0~i中的质数个数,这样任意区间[a,b]中的质数个数就等于prime[b]-prime[a-1]

相应C++代码和运行结果如下:

如图输出了1~30、1~100000之间的质数个数分别为10和9592

附源码:

#include <iostream>

#define N 100000

using namespace std;

int prime[N + 1]; // 标记每个数是否为质数,初值为0

int main() {

    for (int i = 2; i <= N; ++i)

        prime[i] = 1; // 初始化2~N都为质数

    for (int i = 2; i * i <= N; ++i) { // 从最小的质数2开始

        if (prime[i] == 1) // 若i为质数

            for (int j = i * i; j <= N; j += i) // 标记i的所有倍数j为合数

                prime[j] = 0; // i*i之前的倍数肯定已标记过

    } 

    for (int i = 1; i <= N; ++i)  // 转为前缀和

        prime[i] += prime[i - 1]; // 表示[0~i]中的质数个数

    int m, a, b;

    cin >> m;

    int ans[m]; // 保存m组结果

    for (int i = 0; i < m; ++i) {

        cin >> a >> b;

        ans[i] = prime[b] - prime[a - 1];

    }

    for (int i = 0; i < m - 1; ++i)

        cout << ans[i] << " ";

    cout << ans[m - 1] << endl;

    return 0;

}



C++在编辑程序时如何设置才能改变编辑区背景色及字体大小?
VS2008、2010 tool--options--fonts and color 点开之后就会有字体的大小、颜色、背景色的设置了。编译器不同会有不同,但是都是大同小异的,没有本质区别,

C++题目 帮个忙 上课听不懂哇。太笨了。。
第一题的person是什么都不知道故无法完成 第二题请看下面的代码;我已经运行过了!\/ 定义一个Point类,数据成员包括横坐标x和纵坐标y,成员函数包括构造函数和信息打印函数show_info。并从Point类公有派生Rectangle类和Circle类。其中Rectangle派生类中新增数据成员有宽度width和高度height、新增公有成员函数...

c++编译器default compiler done 谢谢,第一次提问,帮个忙
默认编译完成, 0错误,0警告 如果你要运行,你要Run,不是Compiler

请教C++隐藏主窗口方法.
首先::SetWindowLong(m_hWnd,GWL_EXSTYLE,WS_EX_TOOLWINDOW);即可以不在任务栏显示 其次,隐藏主窗口 void CMyDialog::OnNcPaint(){ static int i = 2;if(i > 0){ i --;ShowWindow(SW_HIDE);} else CDialog::OnNcPaint();} ...

全都是一些c++基础问题,可是困扰了我很久了,明天考试,帮个忙吧~
同学,看来你基础很差:1.因为你要将一个值赋给index(3),所以index(3)是一个变量,只有变量才能被赋值,所以 index (int i)只能返回引用,完整函数如下:int &index(int i){return a[i];}这样的话index(i)就是a[i]的另一个名字,而不是只等于a[i]的值,所以index(3)=___;这一行就...

C\\C++如何制作2D动画
现在99%的2d游戏是通过你所说的就是那种把动画每一帧都保存起来,然后一张一张放的方式 但是我没有发现他们的游戏有你所说的效率低下,内存占用大,而且不能控制游戏速度 的问题 即使是flash网游 在大多数场景中 为了降低cpu的占用 也会采用帧动画来取代补间 当然 if you insist 你可以通过程序生成...

一个C++程序作业,模拟电梯运行
为了简单,分配了1到9层.另外也没加入有几人同时按,不过那样也不难,再分配10个每层的变量,随机按.再处理,是先向上还是直接向下.不过那倒真的可以用到真的上了.include <stdio.h> include <dos.h> include <ctype.h> define ON 1 define OFF 0 main(){ int power,i;char oldkey,key ;str...

C++问题:由键盘输入一个整数,判断能否即被3整除又能被5整除
<<endl;else if(i%5==0&&i%7==0)cout<<"能被7和5整除"<<endl;else if(i%7==0)cout<<"能被7整除"<<endl;else if(i%5==0)cout<<"能被5整除"<<endl;else if(i%3==0)cout<<"能被3整除"<<endl;else cout<<"不能被3,5,7任一个整除"<<endl;cin.get();} ...

会C语言的朋友帮个忙啊 帮我编个小程序
会C语言的朋友帮个忙啊 帮我编个小程序 一、总体要求1、对实际问题进行分析、写出算法分析。2、设计程序结构3、给出设计的各模块。4、提交各应用程序的源程序清单。6、课程设计选择turboc二、课程设计的内容和具体要求主要包... 一、总体要求1、对实际问题进行分析、写出算法分析。2、设计程序结构3、给出设计...

求助:C++ 利用文件流的内容合并两个文件
以下代码可供参考:include<iostream> include<fstream> include<string> using namespace std;void connect_file(string filename1, string filename2) { fstream fs1, fs2;fs1.open( filename1.c_str(), ios::out | ios::app );fs2.open( filename2.c_str(), ios::in );if(!fs1 ||...