关于求素数的问题
求素数中100~200的全部素数。技术要点:
素数是大于1的整数,除了能被自身和1整除外,不能被其他正整数整除,本势力的算法是这样的,让i到根号i整除,如果i能被i到根号i任意一个数
整除,则结束循环,若不能整除则要判断j是否是最接近或等于根号i的,如果能则证明是素数,否则继续下次循环。
#include<stdio.h>
#include<math.h>
int main(void)
{
int i,j,n=0;
for(i=100;i<=200;i++)
for(j=2;j<<2<=i;j++)//这里我用j<<2代替了j*j,如果我换成j*j就会编译正确,不知道错在哪里
if(i%j==0)
break;
else if(j>sqrt(i)-1)
{
printf("%d ",i);
n++;
if(n%5==0)
putchar('\n');
}
else
continue;
}
编译后会出现下面的结果:
101 101 101 101 101
101 101 101 101 101
101 101 101 101 101
101 103 103 103 103
103 103 103 103 103
103 103 103 103 103
103 103 ……
请诸位多多指点