求素数
#include<stdio.h>int main()
{
int a,b,isprime=0;
scanf("%d",&a);
for (b=2;b<a||a==1;b++){
if (a%b==0||a==1){
printf("No");
break;
}
else{
isprime=1;
}}
if(isprime==1){
printf("Yes");
}
return 0;
}
这有什么错吗 题目在附件 #define _CRT_SECURE_NO_WARNINGS //这个需要加上,防止警告
#include<stdio.h>
int main()
{
int a, b, isprime = 0;
scanf("%d", &a);
for (b = 2; b < a || a == 1; b++)
{
if (a % b == 0 || a == 1)
{
printf("No");
break;
}
else
isprime = 1;
}
if (isprime == 1)
printf("Yes");
return 0;
}
#include<stdio.h>
int main()
{
int a,b,isprime=0;
scanf("%d",&a);
if(a<=1){
printf("No");
return 0;
}
for (b=2;b<a;b++){
if (a%b==0){
printf("No");
return 0;
}
}
printf("Yes");
return 0;
} baige 发表于 2020-9-25 18:00
能告诉我,那么多return 0的用意吗 4399king 发表于 2020-9-25 18:15
能告诉我,那么多return 0的用意吗
return 0 表示结束程序,遇到 return 0 程序就结束了 2呢,输入2的时候,b初值为2,不符合for条件,直接跳到结尾什么都没输出 Pliosauroidea 发表于 2020-9-25 19:24
2呢,输入2的时候,b初值为2,不符合for条件,直接跳到结尾什么都没输出
for循环结束之后后面还有语句好吧。 修改的话就这个
#include<stdio.h>
int main(void)
{
int a, b, isprime = 1;
scanf("%d", &a);
for (b = 2; b < a || a <= 1; b++)
{
if (a % b == 0 || a <= 1)
{
printf("No");
isprime = 0;
break;
}
}
if (isprime == 1)
printf("Yes");
return 0;
} baige 发表于 2020-9-25 19:38
for循环结束之后后面还有语句好吧。
啥。。
#include <stdio.h>
int main()
{
int a, b, isprime = 0;
scanf("%d", &a);//a=2
for (b = 2; b < a || a == 1; b++)//b==a,a!=1
{
if (a % b == 0 || a == 1)
{
printf("No");
break;
}
else
{
isprime = 1;
}
}//for end
if (isprime == 1)//false
{
printf("Yes");
}
return 0;//return
}
他这个code是处理不了2的啊。。 #include <stdio.h>
#include <math.h>
int main(void)
{
int a , b , isprime = 0 ;
scanf("%d" , & a) ;
if(a > 1) {
for (isprime = 1 , b = 2 ; b < sqrt(a) + 1 ; b ++) {
if(a > b && ! (a % b)) {
isprime = 0 ;
break ;
}
}
}
if(isprime) printf("Yes") ;
else printf("No") ;
}
页:
[1]