c语言中 判断素数的编程,c语言如何判断素数?
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 )
 return 1;
f = mpow( s, t >> 1, m );
if ( t & 1 )
{
 p = s * f * f;
 return p % m;
}
p = f * f;
return p % m;
}
int Miller_Ribin( int s )
{
int i, p;
for ( i = 0; i < 3; i++ )
{
 p = rand()% ( s - 2 ) + 2;
 if ( 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 )
{
 if ( a <= 3 && b >= 3 )
printf("3\n");
 if ( a <= 5 && b >= 5 )
printf("5\n");
 if ( a <= 7 && b >= 7 )
printf("7\n");
 return ;
}
for ( i = 0; i < p; i++ )
 s *= 10;
for ( i = 1; i < 10; i += 2 )
{
 for ( j = 0; j < s; j++ )
{
r = i * s + j;
t1 = j / 10;
t2 = p - 1;
while ( t2 )
{
 r = r * 10 + ( t1 % 10 );
 t1 /= 10;
 t2--;
}
r = r * 10 + i;
if ( r < a )
 continue;
if ( r > b )
 return ;
if ( Miller_Ribin( r ) )
 printf("%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 )
{
 c++;
 p *= 10;
}
p /= 10;
while ( p < b )
{
 if ( c == 2 )
printf("11\n");
 if ( c & 1 )
work( c );
 c++;
 p *= 10;
}
printf("force program runs %.3lfs\n", clock( ) / (double)
◆◆
评论读取中....
请登录后再发表评论!
◆◆
修改失败,请稍后尝试
c语言中 判断素数的编程,c语言如何判断素数?相关推荐
- c语言中最大公约数的编程,C语言中最大公约数求法
从键盘输入两个整数,输出器最大公约数及最小公约数. 法一:穷举法 #include main() { int m,n,i; scanf("%d%d",&m,&n); ...
- c语言中申请内存并初始化,c语言中结构体的定义、初始化及内存分配
#include struct person { char *name; int age; }; int main() { //结构体可以定义在函数内,也可以定义到函数外 //相当于全局变量与局部变量 ...
- C语言primcount素数计数,C语言与汇编的嵌入式编程:求100以内素数
写汇编之前,需要搞清楚C语言代码的写法,这里以最简单的算法举例说明 C代码如下: #include void main(){ int i,j; int count=; for(i=;i<=;i+ ...
- 1. C语言中只能使用单行注释,贵州大学C语言判断题
1. C程序一个语句只能写在一行上. 2. #define N 10定义了一个值为10的变量N. 3. 设有int a;float f=5.75;在执行语句a=(int)f;后,f变成了int型. 4 ...
- 指针在c语言中起什么作用,编程中指针的作用是什么?
原标题:编程中指针的作用是什么? 编程语言中,何为指针?它们都有什么用呢?其实通俗点讲,将一个椅子放进一个小房间锁上门,你若想拿出凳子,就必须有锁门的钥匙,而这钥匙就是指针. 举一个简单的例子: in ...
- c语言关键词中英翻译机编程,C语言关键字中英翻译机.doc
C语言关键字中英翻译机 中 北 大 学 课程设计报告 学 院.系:软件学院专 业:软件工程学 生 姓 名:学 号:设 计 题 目:C语言关键字中英翻译机 起 迄 日 期: 2011年5月30日~ 20 ...
- c语言中鱼贯指针的编程题,泡面吧 IT宅男如何打造编程教学网站
导语:目前泡面吧开放的课程包括编程初学入门常识.C语言入门.C语言进阶.C++入门等7门.在美国,趣味编程网站Codecademy如今异常火爆 互联网这块神奇的热土从来不缺少励志故事. 2014年4月 ...
- SCL语言中如何进行GUI编程?
SCL语言(Step 7 Control Language)是西门子PLC编程语言之一,用于程序控制和自动化任务.在SCL语言中,可以使用STEP 7软件提供的工具和库来进行GUI编程. 下面是一些基 ...
- 【转载】c语言中的可变参数编程
在c语言中使用变长参数最常见的就是下面两个函数了: int printf(const char *format, ...);int scanf(const char *format, ...); 那他 ...
- c语言中如何使用面向对象编程,如何使用C语言的面向对象
我们都知道,C++才是面向对象的语言,但是C语言是否能使用面向对象的功能? (1)继承性 typedef struct _parent { int data_parent; }Parent; type ...
最新文章
- AjaxControltoolkit(工具包)安装步骤说明
- ORACLE日期加减【转】
- 错误:因为相同类型的其他实体已具有相同的主键值。在使用 Attach 方法或者将实体的状态设置为 Unchanged 或 Modified 解决方法...
- java集合——数组列表(ArrayList)+散列集(HashSet)
- 设计模式 C++简单工厂模式
- ai模仿声音软件_你准备好跟AI机器成为同事了吗?
- 设为首页/加入收藏代码
- C语言C++编程软件推荐及下载方式
- python爬虫之模拟登陆(CSDN篇)
- OpenCV IplImage图片结构
- IDEA从零到精通(21)之使用Maven clean发生错误Process terminated
- 国美易卡借助云平台,国美易卡提升了用户体验
- 使用VS2013+MATLAB2016B开发MEX(64位)程序
- Errors while compiling. Reload prevented.
- 互联网电影上线,手机电影院移动端就可以看电影
- 06 聚类算法 - 代码案例二 - K-Means算法和Mini Batch K-Means算法比较
- Webshell文件上传漏洞
- 《三国塔防》为什么成功?
- 7-2 江学长的游戏
- 【Qt】基于Qt的CAN分析仪二次开发