前引
九月将正式进入qdu学习,暑假自习大一课程,遇到比较重要的知识都会用博客记录
今天读大一课本时有一道例题判定素数
方法1:
百度定义:质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数
for(int i=2;i<n;i++)
{
if(n%i==0)
{
printf("%d不是素数",n);
return 0;
}
}
printf("%d是素数",n);
大约试了一下,试到10000000000就报错了
方法2:
对于一个正整数,如果从2到其平方根遍历一遍没有数可以整除,则该数为素数
证明如下:
设该数为n,则n=√n*Vn
若有n=a*b,且a>√n&&a<n,则b<√n&&b>1
所以如果一个数n从2到√n之间没有约数,则必然在√n到n-1之间也没有约数,即n是一个素数
for(int i=2;i<=sqrt(n);i++)
{
if(n%i==0)
{
printf("%d不是素数\n",n);
return 0;
}
}
printf("%d是素数\n",n);
295





