常见算法:C语言求素数的问题

来源:互联网 发布:淘宝女内衣表模板 编辑:程序博客网 时间:2024/05/17 01:43

常见算法:C语言求素数的问题


素数,又称为质数,指在一个大于1的自然数中,除了1和此整数自身外,无法被其他自然数整除的数(只有1和本身两个因数的数),维基百科:素数的定义点击打开链接

算法过程:决定一个数m是否是素数,只要让m被2到 根m 或者(m-1)除,如果不能2到 根m 或者(m-1)中的任何一个数整除,则就定m为素数

例1:判断m是否是素数

[cpp] view plaincopy
  1. #include<stdio.h>  
  2. #include<math.h>  
  3. void main()  
  4. {   
  5.    int m,i, k;  
  6.    scanf("%d",&m);  
  7.    k=sqrt(m);  
  8.    for(i=2; i<=k; i++)  
  9.                 if(m%i==0) break;  
  10.     if(i>k) printf("%d is a prime number\n", m);  
  11.     else printf("%d  is a prime number",m);  
  12.  }  



例2:求300~330之间的全部素数

[cpp] view plaincopy
  1. #include<stdio.h>  
  2. #include<math.h>  
  3. void main()  
  4. {   
  5.    int m,i, k;  
  6.    for(m=301; m<=330; m=m+2)  
  7.        {    
  8.            k=sqrt(m);  
  9.            for(i=2; i<=k; i++)  
  10.                 if(m%i==0) break;  
  11.            if(i>k) printf("%d is a prime number\n", m);  
  12.    }  
0 0