孤殇兮 2022-07-20 16:59 采纳率: 86.7%
浏览 28
已结题

用筛选法求N以内的素数

#include <stdio.h>
int main()
{
//
随机输入整数N
采用筛选法
输出N以内的素数
/
/
return 0;
}

  • 写回答

1条回答 默认 最新

  • superSmart_Dong 2022-07-24 17:26
    关注
    
    #include <iostream>
    #include <cmath>
    using namespace std;
    
    #define N 100
    bool isPrime[N];
    
    bool Prime(int n)
     {
         if (n<2)
         {
             return false;
         }
         if (n==2)
         {
             return true;
         }
         int upper=sqrt(static_cast<double>(n));
         for (int i=2;i<=upper;i++)
         {
             if (n%i==0)
             {
                 return false;
             }
         }
         return true;
     }
     int main()
     {
         isPrime[0]=isPrime[1]=false;
         isPrime[2]=true;
         int i=2;
         for (int i=3;i<N;i++)
         {
             if ((i&(0x01)) ==0)    //用位运算代替i%2==0
             {
                 isPrime[i]=false;
             }
             else
             {
                 isPrime[i]=true;
             }
         }
         int upper=sqrt(static_cast<double>(N));
         for(int i=3;i<upper;i+=2)
         {
             if (isPrime[i] && Prime(i))
             {
                 for (int j=i+i;j<N;j+=i)
                 {
                     isPrime[j]=false;
                 }
             }
         }
         int count=0;
         for (int i=0;i<N;i++)
         {
             if (isPrime[i])
             {
                 cout<<i<<"  ";
                 count++;
             }
         }
         cout<<endl;
         cout<<"素数个数为:"<<count<<endl;
    
         //最原始的求素数方法,速度很慢
         //int count=0;
         //for (int i=2;i<N;i++)
         //{
         //    if (Prime(i))
         //    {
         //        count++;
         //    }
         //}
         //cout<<count<<endl;
         return 0;
     }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月3日
  • 已采纳回答 3月3日
  • 修改了问题 7月23日
  • 创建了问题 7月20日

悬赏问题

  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题
  • ¥15 企业资源规划ERP沙盘模拟
  • ¥15 树莓派控制机械臂传输命令报错,显示摄像头不存在
  • ¥15 前端echarts坐标轴问题