判读一个数m是不是素数
一.从2至m-1逐个遍历
二.从2至√m逐个遍历。原因如下:如果两个数相乘能够得到m,
那么一个数必然大于m,另一个数必然小于m,又或者两个数相等。
第二种方法的代码如下`#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
typedef int ELEM;
ELEM num;
ELEM div;
int isprime;
puts("please input a number for analysi ");
while (scanf("%d", &num) == 1)
{
for (div = 2, isprime = 1; (div*div) <= num; div++)
{
if (num % div == 0)
{
if (div*div != num)
printf("%d is divisible by %d and %d\n", num, div, num / div);
else
{
printf("%d is divisible by %d \n", num, div);
}
isprime = 0;
}
}
if (isprime)
puts("是素数");
else
puts("不是素数");
puts("输入其他判断");
}
}
`