原理:
如果i可以整除2到i/2的数,它就不是素数;如果全部都不能整除,它就是素数。
因为i肯定不能整除i/2到i之间的数,所以不用计算,减少运算的时间。
我把本功能分了2个函数来写,一个用来计算素数,一个用来显示结果。这样如果显示的时候需要更改格式,不需要改计算素数的函数,重用性比较好
//调用函数显示结果,把0到100间的素数显示在id为result的div中
printArray(sushu(0,100),'result');
//显示数组的函数,以空格为间隔显示数组的值,每行显示5个。调用时第一个值arr写需要显示的数组第二个值area写数组显示的位置的ID
function printArray(arr,area){
var str='';
for(var i=0;i
";
str=str+arr[i]+'& nbsp;';//& nbsp;请去掉&后的空格,可以换成其他的间隔符号
}
document.getElementById(area).innerHTML=str;
}
//计算素数用的函数,使用时输入start和end,计算start到end之间的素数
function sushu(start,end){
if(start<0 ||start>end) return "error";
if(start<2) start=2;
var flag=false;
var strResult=new Array();
for(var i=start;i
if(i%j==0) flag=true;
}
if(!flag) strResult.push(i);
else flag=false;
}
return strResult;
}
html中写
function sushu()
{
var n = 1;
var flg = false;
for(var i=2;i<=100;i++)
{
for(var j=2;j {
if(i % j == 0)
{
flg = true;
}
}
if(!flg)
{
if(n % 5 == 0)
{
document.write("
");
}
document.write(i);
n++;
}
}
}
#include
char rec[101];
int main()
{
int i, j, count = 0;
for(i = 2; i <= 10; i++)
{
if(rec[i])continue;
for(j = 2; j * i <= 100; j++)rec[i * j] = 1;
}
for(i = 2; i <= 100; i++)
{
if(rec[i])continue;
printf("%d", i);
if((++count) % 5 == 0)printf("\n");
else
printf(" ");
}
return 0;
}