编写一个函数来判别一个数是否为素数

编写一个函数来判别一个数是否为素数。如果是素数,返回该数;否则返回0值。
要求:(1)在主函数输入一个整数num,调用该函数后,输出num是否是素数的信息。输出格式为:num is prime或num is not prime。
(2)分别输入以下数据:0,1,2,5,9,13,59,121,运行程序并检查结果是否正确。
#include<iostream>
using namespace std;
int main()
{
int i,num;
cout<<"请输入整数:";
cin>>num;
if(num>2)
for(i=2;i<num;i++)
{
if(num%i==0)
cout<<"num is not prime";
else
cout<<"num is prime";
}
else if(num<2)
cout<<"num is not prime";
else if(num==2)
cout<<"num is prime";
}
循环有问题好像,不知道怎么跳出循环,输出好几个语句
改了之后输出也有问题,不能被2整除的也都输出了是素数

#include<iostream>
using namespace std;
int main()
{
int i,num,k;
cout<<"请输入整数:";
cin>>num;
if(num>1)k=1;
else k=0;
for(i=2;i<=num/2;i++)
if(num%i==0){k=0; break;}
if(k)
cout<<"num is prime";
else
cout<<"num is not prime";
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-10-27
cout<<"num is prime"; 这个下面一行加break;追问

改了,可是好像输出来的还是不对,不能被2除的都输出来素数

追答

#include
using namespace std;
int main()
{
int i,num;
cout>num;
bool flag;
for (int i = 2; i <= 100000; i++) {
flag = true;
count++;
for (int j = 2; j < i; j++) {
if(i % j == 0){
flag = false;
break;
}
}
if (flag) {
cout<<"num is prime
}else{
cout<<"num is not prime";
}
}
用这个代码试试

追问

可是我想知道我的for语句哪里错了。。

追答

else if(num<2)
cout<<"num is not prime";
else if(num==2)
cout<<"num is prime";
删除掉这两个

相似回答