/*
素数检测是个 NPC 问题,没有有效的算法。
想要更专业可以参考以下两个网址:
http://www.cppblog.com/zoyi-zhang/archive/2008/09/23/62572.html
http://bbs.emath.ac.cn/viewthread.php?tid=803&extra=&page=1
这里使用一般算法:
用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
*/
#include<stdio.h>
#include<math.h>
bool IsPrime(int num)
{
int k = sqrt(num+1);
for(int i=2;i<= k;i++)
if(num%k==0)
break;
if(i>k)
return true;
else
return false;
}
void main()
{
int prime;
int result;
printf("Please input the number you want to confirm:\n");
scanf("%d",&prime);
result = IsPrime(prime);
if(result)
printf("%d is a prime number.\n",prime);
else
printf("%d is not a prime number.\n",prime);
}
题目:写一个判素数的函数,在主函数输入一个整数,输出是否是素数的信息。
补充:素数检测是个 NPC 问题,没有有效的算法。
想要更专业可以参考以下两个网址:
http://www.cppblog.com/zoyi-zhang/archive/2008/09/23/62572.html
http://bbs.emath.ac.cn/viewthread.php?tid=803&extra=&page=1
这里使用一般算法:
用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
*/
#include<stdio.h>
#include<math.h>
bool IsPrime(int num)
{
int k = sqrt(num+1);
for(int i=2;i<= k;i++)
if(num%k==0)
break;
if(i>k)
return true;
else
return false;
}
void main()
{
int prime;
int result;
printf("Please input the number you want to confirm:\n");
scanf("%d",&prime);
result = IsPrime(prime);
if(result)
printf("%d is a prime number.\n",prime);
else
printf("%d is not a prime number.\n",prime);
}