求素数
输入任意一个整数,判断100以内的正整数是否是素数,并输出判断结果(如输入整数X是/不是素数、输入的整数不符合要求等等,并在数不和条件时给予提示)?要求判断部分写成独立的函数,通过main函数调用实现。
#include <iostream>
#include<cmath>
using namespace std ;
/* 判断素数 ,只需判断2~x的平方根之间是否存在因子,若x不能被这之间任一整数整除,则x一定是素数,否则不是。
如36能被2、3、4、6、9、12、18整除,2,3,4均小于6,9,12,18均大于6,则只需判断2~6之间存在因子与否 */
int Sushu(int x) //判断素数
{
int n,i;//n为x的平方根
n=(int)sqrt(double(x));//sqrt()参数类型是double,注意转换类型
for(i=2;i<=n;i++)//判断2~n之间是不是存在因子
if(x%i==0)//存在因子
break;
if(i>n)
return 1;//是素数
else
return 0;//不是素数
}
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main() {
int x;//x为待判断的数
cin>>x;
if(x!=EOF&&x<=100)//输入的整数符合要求
{
if(Sushu(x))
{
cout<<"整数"<<x<<"是素数"<<endl;
}
else
{
cout<<"整数"<<x<<"不是素数"<<endl;
}
}
else
cout<<"输入的整数"<<x<<"不符合要求,请输入100以内的数"<<endl;
return 0;
}