0.210秒,用Miller-Ribin检验素数

在oj上是15ms

#include

#include

#include

#include

int a, b;

int mpow( int s, int t, int m )

{

long long f, p;

if ( t == 0 )

&nbspreturn 1;

f = mpow( s, t >> 1, m );

if ( t & 1 )

{

&nbspp = s * f * f;

&nbspreturn p % m;

}

p = f * f;

return p % m;

}

int Miller_Ribin( int s )

{

int i, p;

for ( i = 0; i < 3; i++ )

{

&nbspp = rand()% ( s - 2 ) + 2;

&nbspif ( mpow( p, s - 1, s ) != 1 )

break;

}

return i == 3;

}

void work( int c )

{

int p = ( c - 1 ) >> 1, i, j, s = 1, r, t1, t2;

if ( c == 1 )

{

&nbspif ( a <= 3 && b >= 3 )

printf("3\n");

&nbspif ( a <= 5 && b >= 5 )

printf("5\n");

&nbspif ( a <= 7 && b >= 7 )

printf("7\n");

&nbspreturn ;

}

for ( i = 0; i < p; i++ )

&nbsps *= 10;

for ( i = 1; i < 10; i += 2 )

{

&nbspfor ( j = 0; j < s; j++ )

{

r = i * s + j;

t1 = j / 10;

t2 = p - 1;

while ( t2 )

{

&nbspr = r * 10 + ( t1 % 10 );

&nbspt1 /= 10;

&nbspt2--;

}

r = r * 10 + i;

if ( r < a )

&nbspcontinue;

if ( r > b )

&nbspreturn ;

if ( Miller_Ribin( r ) )

&nbspprintf("%d\n", r);

}

}

}

int main( )

{

int s, e;

srand( time( NULL ) );

int i, p, c;

//    scanf("%d%d", &a, &b);

a = 3; b = 1000000000;

p = 1;

c = 0;

while ( p < a )

{

&nbspc++;

&nbspp *= 10;

}

p /= 10;

while ( p < b )

{

&nbspif ( c == 2 )

printf("11\n");

&nbspif ( c & 1 )

work( c );

&nbspc++;

&nbspp *= 10;

}

printf("force program runs    %.3lfs\n", clock( ) / (double)

◆◆

评论读取中....

请登录后再发表评论!

◆◆

修改失败,请稍后尝试

c语言中 判断素数的编程,c语言如何判断素数?相关推荐

  1. c语言中最大公约数的编程,C语言中最大公约数求法

    从键盘输入两个整数,输出器最大公约数及最小公约数. 法一:穷举法 #include main() { int m,n,i; scanf("%d%d",&m,&n); ...

  2. c语言中申请内存并初始化,c语言中结构体的定义、初始化及内存分配

    #include struct person { char *name; int age; }; int main() { //结构体可以定义在函数内,也可以定义到函数外 //相当于全局变量与局部变量 ...

  3. C语言primcount素数计数,C语言与汇编的嵌入式编程:求100以内素数

    写汇编之前,需要搞清楚C语言代码的写法,这里以最简单的算法举例说明 C代码如下: #include void main(){ int i,j; int count=; for(i=;i<=;i+ ...

  4. 1. C语言中只能使用单行注释,贵州大学C语言判断题

    1. C程序一个语句只能写在一行上. 2. #define N 10定义了一个值为10的变量N. 3. 设有int a;float f=5.75;在执行语句a=(int)f;后,f变成了int型. 4 ...

  5. 指针在c语言中起什么作用,编程中指针的作用是什么?

    原标题:编程中指针的作用是什么? 编程语言中,何为指针?它们都有什么用呢?其实通俗点讲,将一个椅子放进一个小房间锁上门,你若想拿出凳子,就必须有锁门的钥匙,而这钥匙就是指针. 举一个简单的例子: in ...

  6. c语言关键词中英翻译机编程,C语言关键字中英翻译机.doc

    C语言关键字中英翻译机 中 北 大 学 课程设计报告 学 院.系:软件学院专 业:软件工程学 生 姓 名:学 号:设 计 题 目:C语言关键字中英翻译机 起 迄 日 期: 2011年5月30日~ 20 ...

  7. c语言中鱼贯指针的编程题,泡面吧 IT宅男如何打造编程教学网站

    导语:目前泡面吧开放的课程包括编程初学入门常识.C语言入门.C语言进阶.C++入门等7门.在美国,趣味编程网站Codecademy如今异常火爆 互联网这块神奇的热土从来不缺少励志故事. 2014年4月 ...

  8. SCL语言中如何进行GUI编程?

    SCL语言(Step 7 Control Language)是西门子PLC编程语言之一,用于程序控制和自动化任务.在SCL语言中,可以使用STEP 7软件提供的工具和库来进行GUI编程. 下面是一些基 ...

  9. 【转载】c语言中的可变参数编程

    在c语言中使用变长参数最常见的就是下面两个函数了: int printf(const char *format, ...);int scanf(const char *format, ...); 那他 ...

  10. c语言中如何使用面向对象编程,如何使用C语言的面向对象

    我们都知道,C++才是面向对象的语言,但是C语言是否能使用面向对象的功能? (1)继承性 typedef struct _parent { int data_parent; }Parent; type ...

最新文章

  1. AjaxControltoolkit(工具包)安装步骤说明
  2. ORACLE日期加减【转】
  3. 错误:因为相同类型的其他实体已具有相同的主键值。在使用 Attach 方法或者将实体的状态设置为 Unchanged 或 Modified 解决方法...
  4. java集合——数组列表(ArrayList)+散列集(HashSet)
  5. 设计模式 C++简单工厂模式
  6. ai模仿声音软件_你准备好跟AI机器成为同事了吗?
  7. 设为首页/加入收藏代码
  8. C语言C++编程软件推荐及下载方式
  9. python爬虫之模拟登陆(CSDN篇)
  10. OpenCV IplImage图片结构
  11. IDEA从零到精通(21)之使用Maven clean发生错误Process terminated
  12. 国美易卡借助云平台,国美易卡提升了用户体验
  13. 使用VS2013+MATLAB2016B开发MEX(64位)程序
  14. Errors while compiling. Reload prevented.
  15. 互联网电影上线,手机电影院移动端就可以看电影
  16. 06 聚类算法 - 代码案例二 - K-Means算法和Mini Batch K-Means算法比较
  17. Webshell文件上传漏洞
  18. 《三国塔防》为什么成功?
  19. 7-2 江学长的游戏
  20. 【Qt】基于Qt的CAN分析仪二次开发

热门文章

  1. 竞价账户时好时坏怎样分析找到原因?
  2. IE兼容性问题汇总【持续更新中】
  3. UE4三维游戏毕设制作与学习过程中的所思所想01
  4. 在JSP中使用数据库
  5. mug网络用语_餐饮服务专用术语
  6. JavaEE开发必备词汇
  7. 迪克斯特拉算法(Dijkstra 最短路算法)(简单易懂)
  8. donet 微服务开发 学习-Docker环境搭建 win7 docker 环境配置
  9. java jbutton添加图片代码_java-如何将图像添加到JButton
  10. OpenCV4经典案例实战教程 笔记