C++判断素数的代码

输入一个正整数n,判断n是否是素数。Input正整数n。Output如果n是素数,则输出yes,否则输出no

以下是C++代码:

Copy code
#include <iostream>
using namespace std;

bool isPrime(int num){
if(num < 2){
return false;
}
for(int i=2; i*i<=num; i++){
if(num % i == 0){
return false;
}
}
return true;
}

int main(){
int n;
cout << "请输入正整数n:";
cin >> n;
if(isPrime(n)){
cout << "yes" << endl;
}else{
cout << "no" << endl;
}
return 0;
}
该程序首先定义了一个函数 isPrime,用于判断一个整数是否为素数。isPrime 接收一个整数 num 作为参数,如果 num 不大于 1,则返回 false,如果 num 能被任何比 1 大但小于等于 sqrt(num) 的整数整除,则返回 false,否则返回 true。其中,双重循环用于遍历 num 向下取整后的所有整数。

接着,程序读入一个正整数 n 。如果 n 是素数,则输出 "yes",否则输出 "no"。

需要注意的是,本程序中使用了布尔值来表示判断结果,如果需要对素数进行一
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-08
int isPrime(int n)
{

if(n <= 1)
return 0;
if(n == 2)
return 1;
int tmp = n/2 + 1;
int i = 0;
for(i = 2; i <= tmp; i++)
{
if(n % i == 0)
return 0;
}
return 1;
}
int main()
{
int num = 0;
scanf("%d",&num);
int isP = isPrime(num);
if(isP)
{
printf("true\n");
}
else
{
printf("false\n");
}
return 0;

}本回答被网友采纳
第2个回答  2013-10-08
#include<iostream>
using namespace std;
 
bool is_prime(int n)
{
if(n<2)
return false;
for (int i=2;i*i<=n;i++)
{
if(n % i == 0)
return false;
}
return true;
}
int main()
{
int n;
cin>>n;
if (is_prime(n))
{
cout<<"yes"<<endl;
}
else
{
cout<<"no"<<endl;
}
return 0;
}

本回答被提问者采纳