作者 唐艳琴
单位 中国人民解放军陆军工程大学
本题目要求读入1个正整数A,判断A是否为素数。
小贴士:反过来考虑,只要有一次整除了,就不是素数,循环break,不要继续算了。还可以加入标志法,flag的初值为1,一,旦整除了,flag置0。输出结果根据flag的值是0还是1来判断。当然也可不用标志法。
输入格式:
输入1个正整数A。
输出格式:
输出A是或否为素数。
输入样例:
2
输出样例:
2 yes
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
栈限制
8192 KB
#include <stdio.h>
int main(){
int A; //定义一个正整数A
int flag = 0; //标记A为素数
scanf("%d", &A);
if(A == 1 || A <= 0){
printf("%d no", A);
}else{
for(int i = 2; i <= A - 1; i++){ //循环相除除了1和本身的数
if(A % i == 0) //[1,A]之间的数除了1和本身,有被A整数的数则不是素数
flag = 1; //标记为不是素数
}
if(flag == 0) //是素数
printf("%d yes", A);
else //不是素数
printf("%d no", A);
}
return 0;
}