找回密码
 欢迎注册
楼主: liexi20101117

[讨论] 让素数这样排列

[复制链接]
发表于 2012-9-26 11:53:45 | 显示全部楼层
10# liexi20101117 那我问你: 3、13、113、2113、12113、紧接着的应该是 612113, 而你给的是 1112113 ,怎么解释
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-9-28 14:17:35 | 显示全部楼层
3、13、113、2113、12113、1112113…… 比如上面的数列的意思是,我给出一个素数A(假设它是个5位数),我想找出下一个素数B(此时B的位数大于5位),B的后面5位数就是前面的A。具体就比如113与2113,2113的后面3位 ... liexi20101117 发表于 2012-9-18 16:56
我刚学习了两天sciab,想尝试一下。不过scilab貌似没有素数测试模块.... 按照你这个要求,我写了一个很低级的代码:
  1. //我的第四个scilab程序
  2. //输出素数数列,其中第n个的后n-1位是数列中的第n-1个数
  3. //完成于2012.09.28
  4. function p=prime(x)
  5. p=1
  6. for i=3:2:x^0.5;
  7. if modulo(x,i)==0 then
  8. p=0;
  9. break
  10. end
  11. end
  12. endfunction
  13. //上面定义素数检测函数
  14. a=3
  15. j=1;
  16. a=13;
  17. while j<8
  18. if prime(a)==1
  19. a
  20. j=j+1;
  21. a=a+10^j;
  22. else
  23. a=a+10^j;
  24. end
  25. end
复制代码
输出结果是
a = 3. a = 13. a = 113. a = 2113. a = 12113. a = 612113. a = 11612113. a = 71612113.
剩下的工作只是优化程序而已,基本的思路就是这样啦 要是7开头的话,那就是
a = 7. a = 17. a = 317. a = 6317. a = 26317. a = 126317. a = 2126317. a = 72126317.
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-9-28 14:20:38 | 显示全部楼层
顺便请教各位高手如何在scilab中快速进行素性测试?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-9-28 18:42:53 | 显示全部楼层
已经知道k位奇素数a,求最小的正整数n使得$n*10^k+a$为素数,对于较大的k,可以利用筛选法加速。 比如制作一个8k大小的比特位缓冲区,全部初始化为0, 然后对于每个小素数p,$p!=a$,计算$h -= -a*10^-k(mod p)$ 然后将缓冲区中$h+s*p$形式的位置全部置为1。 最后,如果缓冲区中还存在比特位0,对对应的数判断是否素数。 如果没有找到素数,重新开始筛选下一个8k位置
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-9-29 16:05:14 | 显示全部楼层
13# 282842712474 scilab完全模仿MATLAB,它也有工具箱的。 可以在官网下载: http://atoms.scilab.org/toolboxes/number * number_isprime — Checks if a number is prime. * number_probableprime — Check if a number is a probable prime.
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2012-10-5 21:43:50 | 显示全部楼层
谢谢wayne老师指出我的错误,也谢谢上面那位给的一段代码。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-12-4 17:16:57 | 显示全部楼层
1# liexi20101117 真对不住,想看代码,需要积分
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-11-21 21:16 , Processed in 0.022605 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表