finn__ 2019-04-17 21:20 采纳率: 0%
浏览 623

排序并且找出其中的素数

对N个自然数进行从大到小的排序(N可以定义任意大于1的常数),并找出其中的素数

  • 写回答

1条回答 默认 最新

  • 行走的bug制造机器 2019-04-17 22:02
    关注
    #include <iostream>
    #include <algorithm>
    using namespace std;
    #define N 20000
    void getprime();                //预先打表
    int isprime[N];                 //记录素数
    int main()
    {
        int n;
        cin >> n;
        int *a = new  int[n]; 
        for (int i = 0; i < n; i++) //得到n个待判断的数
            cin >> a[i];
        sort(a, a + n);
        getprime();                 //预先打表,打表后,数组isprime中素数为1,合数为0
        for (int i = 0; i < n; i++)
            if (isprime[a[i]])
                cout << a[i] << ' ';
        return 0;
    }
    
    void getprime()
    {
        int j;
        memset(isprime, -1, sizeof(isprime));
        isprime[0] = isprime[1] = 0;
        for (int i= 2; i < N; i++)  //素数的倍数变为合数
       if (isprime[i])
                for(j = i * i; j < N; j += i)
                    isprime[j] = 0;
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)