一个关于素数的输出问题,找不到错在哪里好郁闷请高手看看!!
题目:判断101-200之间有多少个素数,并输出所有素数。程序代码:
main() { int i,j,k,l,h; for(i=4;i<=6;i++) { l=sqrt(i); for (j=2;j<=l;j++) { if(i%j==0) { k=1;} else { k=0;break;} } h=i; if(k=1) printf("%d\n",h); } }不甚感激
#include <stdio.h> #include <math.h> void main() { int i,j,k,h; double l; //将l声明为double 或者 float型 for(i=101;i<=200;i++) { l=sqrt(i); k = 1; //判断条件 for (j=2;j<=l;j++) { if(i%j==0) { k=0; //若有因子,则将k赋值为0,并跳出循环 break; } } h=i; if(k==1) //这个地方书写错误,是 "==",不是"="。两者区别很大 printf("%d\n",h); } }