不需要,因为判断x是否为素数,只需要将isPrime赋值一次即可, 后面再根据区间2到(x-1)的数是否可以整除x来调整isPrime的值,循环结束再根据isPrime是否等于1,来打印是否素数,所以不需要将它放置到for循环中。
测试如下:
#include <stdio.h>
int main(void){
int x;
scanf("%d",&x); // 从输入获取一个整数,存储到int变量x中
int i;
int isPrime=1; // 素数标志,默认为1,表示是素数
// 如果输入的数会小于2,则需要再这个判断,因为小于2的数都不是素数,如果输入的数都大于等于2,则这个判可以去除
if(x<2){
isPrime=0; //小于2的数,素数标志置0
}
for(i=2;i<x;i++){ // 遍历1区间 2到(x-1)之间所有的数
if(x%i==0){ // 如果区间的任意一个数可以整除x,则x不是素数,素数标志置0
isPrime=0;
break;
}
}
if(isPrime==1){ // 如果素数标志为1,则打印"是素数"
printf("是素数\n");
}else{ // 如果素数标志不等于1,则打印"不是素数 "
printf("不是素数\n");
}
return 0;
}
【相关推荐】