Chinaunix

标题: 简单的算法,有更好的不 [打印本页]

作者: 骄傲的唐    时间: 2009-03-12 14:32
标题: 简单的算法,有更好的不
入门级别的,打印1到100直接的质数
我写的

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. int main( void )
  4. {
  5.     int i,j;
  6.     for( i = 1; i < 101 ; i++ ) {
  7.          for( j = 2; j < i-1; j++ ) {
  8.               if( i % j == 0 ) {
  9.                   break;                 
  10.               }   
  11.          }
  12.          if( i % j != 0 || i == 2 )
  13.              printf( "%d\t",i );
  14.     }
  15.     while( 1 )
  16.            ;
  17. }

复制代码

作者: billzhou    时间: 2009-03-12 14:37
筛法
作者: 雨过白鹭洲    时间: 2009-03-12 14:39
你写的已经不错了
作者: ruanunix    时间: 2009-03-12 15:11
还可以用费马小定理
作者: cugb_cat    时间: 2009-03-12 15:15
筛法求素是很快的,不过有空间限制。
作者: Brevity    时间: 2009-03-12 15:18
原帖由 ruanunix 于 2009-3-12 15:11 发表
还可以用费马小定理


写出来学习学习啊!
作者: xuxingyu    时间: 2009-03-12 15:23
我记得j可能缩小到sqrt(i)吧
作者: 骄傲的唐    时间: 2009-03-12 15:31
费马小定理


费马小定理是数论中的一个重要定理,其内容为:
  假如p是质数,且(a,p)=1,那么 a^(p-1) ≡1(mod p)
作者: ruanunix    时间: 2009-03-12 15:41
费马小定理用C很不方便,很容易溢出,但是速度最快
作者: prolj    时间: 2009-03-12 15:56
该死的数论!
我以前找过几篇 paper ,有个《 C 语言高级程序设计 100 例》就有几个素数算法,简单的。
想省空间,用 bitmap
作者: gawk    时间: 2009-03-12 16:01
自己数出来,printf算了




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2