问题不知道如何解决,可以帮一下吗?

img


不知道这个问题如何解决
有知道的如何解决问题的哥们,可以帮一下吗
谢谢啦

图形库没有安装吧,去找找 EasyX的 图形库,网上搜搜很多的

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7608765
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:类是一个数据类型;对象是类的变量,定义一个类,是一个抽象概念
  • 除此之外, 这篇博客: 素数判定中的 一、如果求某一范围所有素数,或者所判定素数较小,数组可以开下,就可以用筛选法 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 埃拉特斯特尼筛法:时间复杂度为O(n loglog n)
    从2开始,将每个质数的倍数都标记成合数,以达到筛选素数的目的

    #include <bits/stdc++.h>
    #define INF 0x3f3f3f3f
    #define d(x) cout << (x) << endl
    #pragma GCC diagnostic error "-std=c++11"
    using namespace std;
    typedef long long ll;
    const int mod = 1000000009;
    const int N = 1e5 + 10;
    
    #define MAX 100000 
    long long su[MAX], cnt; //su存放素数
    bool isprime[MAX];      //判断一个数是否素数
    
    void prime()
    {
        cnt = 1;
        memset(isprime, 1, sizeof(isprime)); 
        isprime[0] = isprime[1] = 0;         
        for (long long i = 2; i <= MAX; i++)
        {
            if (isprime[i]) 
            {
                su[cnt++] = i;
            }
            for (long long j = i * 2; j <= MAX; j += i) 
            {
                isprime[j] = 0;
            }
        }
    }
    int main()
    {
        prime();
        d(su[56]);
        return 0;
    }
    
    

    欧拉筛
    在埃氏筛法的基础上,让每个合数只被它的最小质因子筛选一次,以达到不重复筛选的目的。线性O(n)的复杂度

    int prime[maxn];
    int visit[maxn];
    void Prime(){
        mem(visit,0);
        mem(prime, 0);
        for (int i = 2;i <= maxn; i++) {
            cout<<" i = "<<i<<endl;
            if (!visit[i]) {
                prime[++prime[0]] = i;      //纪录素数, 这个prime[0] 相当于 cnt,用来计数
            }
            for (int j = 1; j <=prime[0] && i*prime[j] <= maxn; j++) {
    //            cout<<"  j = "<<j<<" prime["<<j<<"]"<<" = "<<prime[j]<<" i*prime[j] = "<<i*prime[j]<<endl;
                visit[i*prime[j]] = 1;
                if (i % prime[j] == 0) {
                    break;
                }
            }
        }
    }
    
    
    
    

    原理:
    对于visit[i*prime[j]] = 1 的解释: 这里不是用i的倍数来消去合数,而是把 prime里面纪录的素数,升序来当做要消去合数的最小素因子。
    发现 i 在消去合数中的作用是当做倍数的。而在上面的方法中,充当的是基数。
    在这里插入图片描述

    对于 i%prime[j] == 0 就break的解释 :当 i是prime[j]的倍数时,i = kprime[j],如果继续运算 j+1,i * prime[j+1] = prime[j] * k prime[j+1],这里prime[j]是最小的素因子,当i = k * prime[j+1]时会重复,所以才跳出循环。

  • 您还可以看一下 张传波老师的软件设计是怎样炼成的?课程中的 架构设计的第一层拆解小节, 巩固相关知识点

以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:

这个问题是关于如何在C++中读取并处理图像的。我的建议是使用OpenCV库,它是一个流行的计算机视觉库,可以帮助你处理图像。你需要安装OpenCV库并在你的代码中包含它的头文件。以下是一个简单的例子,演示如何读取图像并显示它:

#include <opencv2/opencv.hpp>

int main() {
    // 读取图像
    cv::Mat image = cv::imread("image.jpg", cv::IMREAD_COLOR);

    // 检查图像是否成功读取
    if (image.empty()) {
        std::cout << "无法读取图像" << std::endl;
        return -1;
    }

    // 在窗口中显示图像
    cv::namedWindow("图像窗口", cv::WINDOW_NORMAL);
    cv::imshow("图像窗口", image);

    // 等待用户按下按键
    cv::waitKey(0);

    return 0;
}

这个例子假设你已经将图像保存为"image.jpg"。当你运行这个程序时,它会读取这个图像并在一个名为"图像窗口"的窗口中显示它。你可以使用OpenCV的其他函数来处理图像,例如裁剪、旋转、模糊、边缘检测等等。