求素数又有新的疑问
请各位再看这!这个语句编译器没有输出,是不是因为没有进循环?因此取不到i的值。#include"stdio.h";
main(){
int i;
for(i=5;i<=2;i++)
printf("%d",i);
}
既然取不到i的值,那下面求素数的代码中当m=2时,for语句实际上就变为for(i=2;i<=1;i++),此刻就取不到i的值。那又如何判断if(i>n)?也就没有办法判断当m=2时是不是素数。可是当我在编译器中输入2时,编译器却输出2是素数。令人不解。
#include"stdio.h"
#include"stdlib.h";
#include"math.h";
main(){
int m,n,i;
scanf("%d",&m);
n=sqrt(m);
for(i=2;i<=n;i++)
if(m%i==0)
break;
if(i>n)
printf("%d是素数",m);
else
printf("%d不是素数",m);
printf("\n");
system("pause");
}