输入一个大于3的整数m,判定他是否为素数
素数,简单来说就是质数,能够被1和自己本身整除才能称为素数。
#include<stdio.h> #include<math.h> void main() { int m,i,k; scanf("%d",&m); k = sqrt(m); //m表示开根号值,k表示被开根号值,m=25,k=5 for (i=2; i<=k; i++) { if(0 == m%i) { break; } } if(i>k) { printf("%d is a prime number\m",m); } else { printf("%d is not a prime number\m",m); } }
算法思想:m被2到k值除,如果m能被2-k中任何一个整数整除则提前结束循环,i必然小于或等于K;如果m不能被2-k之间的任意整数整除,则在完成最后一次循环后,i还要加1,因此i=k+1,然后才终止循环。再循环之后判别i的值是否大于等于k+1,如是,则表明未曾被2-k之间任意整数整除过,因此输出“是素数”。