判断一个数是不是素数,采用的算法如下:
让m先后被2到√m(平方根)除,如果能够被2~√m之中的任何一个整数整除,则提前结束循环,而此时的i必然小于或者等于k=√m;如果m不能够被2~k之间的任意一个整数整除,则在完成最后一次循环后,i的值加1,因此i=k+1,然后终止循环。
循环结束后,我们判断i的值是否大于或者等于k+1,如果成立,这就说明m没有被2~k之中的任何一个整数整除过,因此判断m素数。
C语言代码如下:
#include <stdio.h>
#include <math.h>
void main()
{
int m,i,k;
scanf("%d",&m);
k=sqrt(m);
for (i=2;i<=k;i++)
if (m%i==0)break;
if(i>k)printf("%d is a prime number!\n",m);
else printf("%d is not a prime number!\n",m);
}
Python语言代码程序如下:
#!/usr/bin/pytnon3
#-*-coding:UTF-8-*-
import math
m = int(input("请输入一个整数:"))
k = math.sqrt(m)
i = 2
while i<=k:
if m%i==0:
break
i+=1
if i>k:
print("%d是一个素数"% m)
else:
print("%d不是一个素数"% m)