问题描述:
大哥大姐帮忙呀!
解析:
#include <stdioh>
#include <mathh>
bool IsPrime(int n);
void main(void)
{
for (int i = 2; i <= 100; i ++)
{
if (IsPrime(i))
{
printf("%d是质数\r\n", i);
}
}
}
bool IsPrime(int n)
{
int nRoot = int(sqrtf(n));
for (int i = 2; i < nRoot; i ++)
{
if (n % i == 0)
return false;
}
return true;
}
质数表:
分布规律
以36N(N+1)为单位,随着N的增大,素数的个数以波浪形式渐渐增多。
S1区间1——72,有素数18个,孪生素数7对。(2和3不计算在内,最后的数是孪中的也算在前面区间。)
S2区间73——216,有素数27个,孪生素数7对。
S3区间217——432,有素数36个,孪生素数8对。
百度百科-质数
第一步:2×N(N=2,3,4,……,50)是合数。第二步:3×N(N=2,3,4,……,33)是合数。
第三步:5×N(N=2,3,4,……,20)是合数。
第四步:7×N(N=2,3,4,……,14)是合数。
第五步:剩余的数,除1之外,全是素数。
用函数实现1-100中素数的算法如下:
<php //定义函数
function sushu() {
//求100以内质数
for ($i = 1; $i <= 100; $i++)
{
$k = 0;
for ($j = 1; $j < $i; $j++) {
if ($i % $j == 0) { $k++;}}
if ($k == 1) {
echo $i;
echo " ";
}
}
}
sushu(); // 调用函数
>
PHP相关知识拓展:
PHP 用户定义函数:
除了内建的 PHP 函数,我们可以创建我们自己的函数。
函数是可以在程序中重复使用的语句块。
页面加载时函数不会立即执行。
函数只有在被调用时才会执行。
自定义函数方法:
<php
function writeMsg() {
echo "Hello world!";
}
writeMsg(); // 调用函数
>
一到一百的质数有25个:2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97。 这些都是只能被他本身和1整除的数。
:质数又称素数,有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。否则称为合数。
质数的个数是无穷的。 欧几里得的《 几何原本》中有一个经典的证明。它使用了证明常用的方法: 反证法。具体证明如下:假设质数只有有限的n个,从小到大依次排列为p 1,p 2,,p n,设N=p 1×p 2××p n,那么,p n加一是素数或者不是素数。
对1-100的所有数进行遍历,逐一判断每个数是否为素数。
判断素数的算法有很多,比较基础的是逐一求余,如果除了1和本身外,还有其它数可以整除那么就不是素数。
代码如下:
#include <stdioh>int main()
{
int i, j;
for(i = 2; i < 100; i ++)
{
for(j = 2; j < i; j ++)
{
if(i%j==0) break; //可以整除, 退出循环。代表不是素数。
}
if(j == i)//没有提前退出循环,代表是素数,打印。
printf("%d,", i); //打印i值。
}
return 0;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)