求大神 输入一个正整数n,判断n是否是素数.C++

2025-03-24 01:51:11
推荐回答(4个)
回答1:

应该逻辑上错了,看懂别人写的代码比自己重新写难多了。

#include 
#include "math.h"
#include "stdlib.h"
using namespace std;
int main(int argc, char** argv) {
int n;
bool flag=false;
cin>>n;
for(int i=2;i {
if(n%i==0)
{
flag=true;
break;
}
}
if(flag)
{
cout<<"yes"< }
else
{
cout<<"no"< }
system("pause");
return 0;
}

回答2:

# include 
# include
using namespace std;
int main ()
{
int n,i=2;
int k;                        //k定义为整数 舍去小数部分,
cin>>n;
k=sqrt(n);

while(i<=k)                    //是小于等于k
{
    if(n%i==0)

{cout<<"no";
break;}

else if(i==k)                //i一直加到等于k 还没有发现整除的数 则判断为素数!
{cout<<"yes";
}
i+=1;

}

return 0;
}

回答3:

# include 
# include
using namespace std;
int is_prime(int num)
{
    int isprime = 1;
    if(num < 2) return 0;
    if(num == 2) return isprime;
    for(int i = 2; i <= sqrt(num); ++i)
    {
        if((int(num)% i) == 0)
        {
            isprime = 0;
            break;
        }
    }
    return isprime;
}

int main ()
{
    int n,i=1;
    double k;
    cin>>n;
    if(is_prime(n)) cout<<"yes";
    else cout << "no";
    return 0;
}

回答4:

#include
#include
#include
using namespace std;
int main()
{
int n,i,f=0;
cin>>n;
for(i=1;i<=n;i++)
{
if(n%i==0) f=f+1;
}
if(f==2) cout<<"yes";
else cout<<"no";
return 0;
}