孤殇兮 2022-07-20 16:59 采纳率: 92.9%
浏览 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日

悬赏问题

  • ¥15 多址通信方式的抗噪声性能和系统容量对比
  • ¥15 winform的chart曲线生成时有凸起
  • ¥15 msix packaging tool打包问题
  • ¥15 finalshell节点的搭建代码和那个端口代码教程
  • ¥15 Centos / PETSc / PETGEM
  • ¥15 centos7.9 IPv6端口telnet和端口监控问题
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 海浪数据 南海地区海况数据,波浪数据
  • ¥20 软件测试决策法疑问求解答