程序接受int可表示的正整数,并判断其是否为质数
算法说明
有两种算法可供选择
一是利用for循环,用一个小于待判断数的数去对待判断数求余,若该数在自加过程中出现了余数为0的情况,则待判断数不是质数,需注意的是应从2开始循环语句
二是利用do while语句,情况和上面相同
程序代码
#include<stdio.h>
int main()
{
int m, i, k;
printf(“Please input a integer:”);
scanf_s("%d", &m);
if(m==1)
printf("%d is a prime,\n", m);
for (i = 2; i <= m; i++)
{
k = m % i;
if (k == 0)
break;
}
if (i < m)
printf("%d is not a prime.\n", m);
else
printf("%d is a prime,\n", m);
return 0;
}
程序代码2.0
#include<stdio.h>
int main()
{
int m, i=2, k;
printf(“Please input a integer:”);
scanf_s("%d", &m);
if(m==1)
printf("%d is a prime,\n", m);
do
{
k = m % i;
i++;
} while (k == 0);
if (i < m)
printf("%d is not a prime.\n", m);
else
printf("%d is a prime,\n", m);
return 0;
}
说明:2.0与1.0不同之处在于循环方式,其思想是一致的,另外需要注意的是如果使用do while 循环需要先对i赋值
利用该方法通过调用函数验证哥德巴赫猜想