输入正数n,判断n是否为素数。若为素数则输出1,否则输出0。(提示:素数是指只可以被1和其本身整除的正数(1除外))
输入10输出0
输入7输出1
测试:
输入9输出0
思路:递归1到n的数判断是否有能整除的
#include<stdio.h>
int main()
{
int m, n;
int i = 0;
printf("请输入一个正整数:\n");
scanf("%d", &m);
for (n=2; n < m ; n++) //递归从二到n的每一个数;
{
if (m % n == 0) //尝试2到n是否有可以被n整除的因子;
{
i = 1;
break; //当判断出不是素数时,循环结束,否则继续进行;
} // 设定一个变量作为标记,当不是素数时赋值为1;
}
if(i==1)
{
printf("0\n"); /* 在for循环外进行判断,标记值为1时为非素数输出0;如果放在for循环内的话,即使是非素数也会有不能整除的数导致最终判断为素数*/
}
else
{
printf("1\n");
}
return 0;
}