编写一个函数,判断一个数是不是素数。在主函数中输入一个整数,输出是否是素数的信息。要求:
(1)编写一个函数prime(n),返回给定整数n是否为素数。
(2)编写一个主函数,输入一个整数,调用(1)题中的函数,判断此整数是否为素数,并输出结果。
#include<iostream>
#include<cmath>
using namespace std;
void fun(int a)
{
int k,i;
k=sqrt(a);
for(i=2;i<=k;i++)
if(a%i==0)break;
if(i>k)
cout<<a<<"是素数"<<endl;
else
cout<<a<<"不是素数"<<endl;
}
main()
{
int a;
cout<<"请输入一个整数";cin>>a;
fun(a);
return 0;
}
return语句有以下形式:
return;//不带返回值的return语句
return 0;//带返回值的return语句,或者返回一个变量或一个函数。
return 1//表示函数异常结束
不带返回值的return语句用于,中断返回值为void类型的函数的执行,而带返回值的return则不行。
#include<iostream>
using namespace std;
void f(){
cout<<"begin"<<endl;
return 0;/*此处有问题,此时return;的作用相当于break;用于中断循环的作用。所以不该返回某个具体的值。*/
cout<<"end"<<endl;
}
int main(){
f();
return 0;
}
将return 0;换为return;后,运行成功:
总结:
return;的作用相当于break;用于中断循环的作用;
return 0;则是return的另一种用法,专用于返回值非void的函数返回其值。
我有点看不懂
k=sqrt是什么意思
追答sqrt是开方函数。math.h里面有定义。
追问看不懂,计算机是怎么算素数的,一个数能被1和它本身所整除就是素数,计算机怎么思考的,你能用文字给我说清楚吗
追答就是一个大于等于2的整数,并且只能被1和本身整除,而不能被其它整除数的数。那么就要从2开始循环到n的平方根(因为最多平方等于本身,不可能再高了),用for语句循环,如果n被2到n的平方根之间被整除,n就不是素数;如果不被整除,就是素数。
亲,请采纳。
本回答被网友采纳