求素数/质数(采用的sqrt)
#include <stdio.h>
#include<math.h>
//判断一个数是不是素数
int checkPrimeNumber(int a)
{
int i,k;//循环、平方根、
int flag = 0;//标志
// 求平方根,注意sqrt()的参数为 double 类型,
//这里要强制转换a的类型、还要注意这里的头文件哈
k = (int)sqrt((double )a);
for(i=2;i<=k;i++)
{
if (a%i==0)//余数为0,不是素数
{
flag=0;
break;
}
}
if(i>k)//循环结束时i++,不满足i<=k,所以i>k
{
flag=1;//是素数
}
return flag;
}
一个输出函数
void output(int a,int flag)
{
if(flag==1)
printf("%d是素数\n",a);
else if(flag==0)
printf("%d不是素数\n",a);
else
printf("标志错误\n");
}
主函数(我这里写的有点复杂,因为在押题,不知道以什么方