素数又叫质数(prime number),有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数,如5、7、11等均为素数。
根据素数的定义我们可以知道:要判断一个数n是否是素数,即判断2~n之间有没有能够整除它的数。所以我们可以设一个计数器m,当2~n之间出现了能够整除n的数时 m++;否则m=0;最后看m的值,若m为0则n为合数,若m不为0则n为素数:
int m = 0;
for(int i=2;i<n;i++){
if(n % i == 0){
m++;
}else{
m == 0;
}
}
if(m == 0){
printf("%d is a sushu\n",n);
}else{
printf("%d isn't a sushu\n",n);
}
因为限制条件是100~200间的数,所以我们还需要加上一个if-else判断语句:
if(n<100||n>200){
printf("Your input is wrong!\n");
}
完整代码:
#include <stdio.h>
int main()
{
int n;
printf("please input a number between 100 and 200:\n");
scanf("%d",&n);
if(n<100||n>200){
printf("Your input is wrong!\n");
}else
{
int m = 0;
for(int i=2;i<n;i++){
if(n % i == 0){
m++;
}else{
m == 0;
}
}
if(m == 0){
printf("%d is a sushu\n",n);
}else{
printf("%d isn't a sushu\n",n);
}
}
return 0;
}