c++中素数的判断???

判断一个数是否为素数?
判断一个数是否为素数?
判断一个球是否为素数?

网上一大堆,逻辑是:循环i从2到根号n取整,将原数除以i,都不能整除的为素数,0、1单独判断。

循环i从2到根号n取整,将原数除以i,都不能整除的为素数,0、1单独判断。

几个复制粘贴的我也是呵呵。

如果不希望超时,没有严格的内存限制,当然是使用筛法,网上可以找到示例。

筛法的思路就是:开一个大数组(根据你想求解多大范围内的素数来开),全部置1。先筛掉能整除2的(从2开始,步长为2的迭代,把所有偶数都置0),再筛掉能整除4的,一直到sqrt(最大数字)。。。筛完之后,数组里还剩下的为1的就是素数。

当有多组测试输入时,效率会很高,只需计算一次,就能连续输出结果。而且除了sqrt()的计算,没有用到除法。

首先你要清楚什么叫素数。
最简单的方法就是依次用2~n-1去整除,只要能被其中一个数整除,n就不是素数;更简单的说,只需要用2~根号n的所有整数去除N就可以了。
C语言中,可以用for循环语言做。

使用取余符号%计算余数,如果为零,那么不为素数,否则,是素数

#include<bits/stdc++.h>
using namespace std;
int main(){
    int a;
    cout<<"请输入一个数:";
    cin>>a;//输入;
    //判断
    for(int i=2;i<a;i++){
        if(a%i==0){
        //余数是否为零 
        cout<<"不是素数";
        return 0;//如果不是素数,输出,程序结束 
        }
    } 
    cout<<"是素数";
    //如果所有判断都通过,那么是素数 
    return 0;
}



点个采纳,谢谢


#include <iostream> 
using namespace std;
int aaa(int n){
    if(n<=1){
        return 2;
        
    }
    for(int i=2;i<n;i++){
        if(n%i==0){
            return 0;
        }
    }
    return 1;
}
int main(){
    int x;
    cin>>x;
    if(aaa(x)==0){
        cout<<"合数"; 
    }
    else if(aaa(x)==1) {
        cout<<"质数";}
    else{
         cout<<"非质非合"; 
    } 
         
    }