#include
int main(){
int N;
scanf("%d",&N);
int i;
int isPrime = 1;
for(i=2;i
if( N % i == 0){
isPrime = 0;}
}
if(isPrime = 1)
{
printf("NO\n");
}
else{ printf("YES\n");}
return 0;
}
题目;输入一个大于1的正整数N,输出其是否为素数,如果是输出YES,否则输出NO。
有问题,判断 这里if(isPrime = 1) 是isPrime == 1,还有:
for(i=2;i<N;i++){
if( N % i == 0){
isPrime = 0;}
}
判断这里,假如N = 5,循环一直模,5%i 他没有==0的,所以你现在isPrime 一直是1 所以打印了一个NO 而5是质数,所以你这里判断错了
可以这么写:
#include <stdio.h>
int main(){
int a=0;
int num=0;
scanf("%d",&num);
if(num == 1){
printf("NO\n");
} else{
for(int i=2;i<num;i++){
if(num%i==0){
a++;
}
}
if(a==0)
printf("YES\n");
else
printf("NO\n");
}
return 0;
}
if和else反了,其次if里面的判断条件你用的是赋值号