C语言实验——判断素数(循环结构)
Time Limit: 1000 ms Memory Limit: 65536 KiB
Problem Description
从键盘上输入任意一个正整数,然后判断该数是否为素数。
如果是素数则输出"This is a prime."
否则输出“This is not a prime.”
Input
输入任意一个正整数n(1 <= n <= 1000000)。
Output
判断n是否为素数,并输出判断结果:
如果n是素数则输出"This is a prime."
否则输出“This is not a prime.”
特别提醒:请注意对1的判定,1不是素数。
Sample Input
3
Sample Output
This is a prime.
Hint
Source
//1是特殊情况 需要单独判断(1不是素数)
//(1)从1到a-1 的每一个数都进行判断
#include<stdio.h>
int judge(int a) {
int i,sum=0,flag=1;
if (a == 1 ) {
flag = 0;
}
else if (a == 2) {
flag = 1;
}
else {
for (i = 2; i < a; i++) {
if (a%i == 0) {
flag = 0;
break;
}
else {
sum++;
}
}
if (sum < a - 2) {
flag = 0;
}
}
return flag;
}
int main()
{
int a;
scanf("%d", &a);
if (judge(a)) {
printf("This is a prime.\n");
}
else {
printf("This is not a prime.\n");
}
return 0;
}
//(2)从1到根号下a 的每一个数都进行判断
#include<stdio.h>
#include<math.h>
int judge(int a) {
int i,flag=0;
int k = sqrt(a);
if (a == 1) {
flag = 0;
}
else {
for (i = 2; i <= k; i++) {
if (a%i == 0) {
break;
}
}
if (i > k) {
flag = 1;
}
}
return flag;
}
int main()
{
int a;
scanf("%d", &a);
if (judge(a)) {
printf("This is a prime.\n");
}
else {
printf("This is not a prime.\n");
}
return 0;
}