我必须使用c开发一个程序,该程序将用户的2个不同数字作为输入,并在输入中输出素数(例如输入2和100,输出从2到100的素数)。程序应该终止非素数并且不打印。谁能告诉我代码中的错误
setbuf(stdout,NULL);
int flag=0,num,num1,i,a;
printf("Enter 2 number");
scanf("%d%d",&num,&num1);
for(i=num;i<=num1;i++){
for(a=2;a<i;a++){
if(i%a==0){
flag=1;
break;
}
if(flag==0){
printf("n%d",num);
}
}
}
我必须使用c开发一个程序,该程序将用户的2个不同数字作为输入,并在输入中输出素数(例如输入2和100,输出是从2到100的素数)。程序应终止非素数,不打印。
至少这个问题:
int flag=0
应该在for(i=num;i<=num1;i++){
环内,为每个新的i
重置质数检测。
注:for(a=2; a<=i/a; a++) {
比for(a=2;a<i;a++){
快得多