初等数论,一个整数不能整除他的平方数之内的整数就是素数。
程序如下:
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 #include <math.h> 5 int main() 6 { 7 int prime(int); 8 int prime2(int); 9 int n; 10 printf("input a number: "); 11 scanf("%d",&n); 12 if(prime2(n)) 13 printf("%d is a prime. ",n); 14 else printf("%d is not a prime. ",n); 15 system("pause"); 16 return 0; 17 } 18 int prime(int n){//普通法 19 int flag=1,i; 20 for(i=2;i<n/2 &&flag ==1;i++){ 21 if(n%i==0) 22 flag=0; 23 } 24 return (flag); 25 } 26 int prime2(int n){//初等数论法 27 int flag=1,i; 28 for(i=2;i<sqrt(n) &&flag ==1;i++){ 29 if(n%i==0) 30 flag=0; 31 } 32 return (flag); 33 }