博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SICP 1.28
阅读量:6810 次
发布时间:2019-06-26

本文共 743 字,大约阅读时间需要 2 分钟。

  hot3.png

解:按照题目的意思,代码如下:

(define (square x)  (* x x))(define (miller-rabin-test n)  (define (check a n)    (let ((r (remainder (square a) n)))      (if (and (> a 1)               (< a (- n 1))               (= r 1))          0          r)))  (define (expmod-without-nontrivial-square-root-1 base exp m)    (cond ((= exp 0) 1)          ((even? exp)           (check (expmod-without-nontrivial-square-root-1 base (/ exp 2) m) m))          (else (remainder (* base (expmod-without-nontrivial-square-root-1 base (- exp 1) m)) m))))  (define (try-it a)    (= (expmod-without-nontrivial-square-root-1 a (- n 1) n) 1))  (try-it (+ 1 (random (- n 1)))))

参考其它博客的,有在expmod-without-nontrivial-square-root先检查a的,这样做也可以。

转载于:https://my.oschina.net/guzhou/blog/304142

你可能感兴趣的文章
POJ 2391 Ombrophobic Bovines【二分+最大流】
查看>>
Python与模块--01sys
查看>>
那些令人喷饭的代码注释:仅以此代码献给...it's realy ?
查看>>
华为手机连不上adb解决方法
查看>>
怎样让程序不断执行
查看>>
touch事件的分发和消费机制
查看>>
字节对齐 pragma
查看>>
spring mvc静态资源放行
查看>>
CSRF与XSS攻击的原理与防范
查看>>
如何创建图像
查看>>
android之自定义弹框
查看>>
表单元素与提示文字无法对齐的问题(input,checkbox文字对齐)
查看>>
docker
查看>>
Zookeeper C API 指南四(C API 概览)
查看>>
MyCAT与MySQL导入、导出文件
查看>>
Custom.pll : ZOOM小测试
查看>>
打印机如何取消打印任务
查看>>
表单非空验证的问题
查看>>
比rufus/scheduler更独立简洁的定时脚本必备whenever
查看>>
java中判断字符串是否为数字的三种方法
查看>>