夫子807 2022-10-21 22:44 采纳率: 100%
浏览 12
已结题

求质数问题,我这个代码只能求到三

img


写的求1到n的质数问题,但运行后无论输入n多大,最多只能求到三,(输入2能求到2)

  • 写回答

1条回答 默认 最新

  • .LAL. C/C++领域新星创作者 2022-10-22 08:47
    关注
    
    #include<iostream>
    #include<cmath>
    using namespace std;
    int main(void){
        int n;
        bool m=1;//m用作判断是否为素数 
        cin>>n;
        if(n%2==0&&n!=2||n==1)//排除偶数
            m=0
        n=sqrt(n);
        for(int i=3;i<n;i+=2)//1不做考虑,同时判断时不会考虑他本身
            if(n%i==0){//能整除 
                m=0;//标记 
                break;//退出循环 
            }
                
        if(m)
            cout<<"是素数";
        else
            cout<<"不是素数";
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月30日
  • 已采纳回答 10月22日
  • 创建了问题 10月21日