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

[讨论] 数字乘积

[复制链接]
 楼主| 发表于 2009-3-3 13:37:33 | 显示全部楼层
p(n)=12要困难很多. 我目前正在找10^100内的11阶数, 但目前未发现一个.
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-3-3 13:39:05 | 显示全部楼层
不需要,我上面给出的信息已经可以用来证明这个数是11阶的最小素数了。 假设还有更小的素数,那么它最多15位,所以所有位数字的乘积不超过$9^15<937638166841712$ 也就是证明了只能使用第一个数字来构造这个素数。 而第一个数字构造出的所有数中,这个应该已经是第二小的了(这个可能需要一些比较好的证明方法 ) 不过对于12阶以上的数字,要超过long long表示范围,需要用大数运算才行了。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-3-3 14:39:53 | 显示全部楼层
汗 这么大 幸亏我终止了搜索 否则还不搜索10年啊 中午想明白了 大于100的各阶有效数字(能向上逆推的)不能有因子5 而只有因子2, 3, 7的数字是很少的 假设以个位数字做根 则,每个有效数字链接到这个上面 组成一个树 如果成功构造这个树 应该能加速筛选过程
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-3-3 14:45:30 | 显示全部楼层
假设求取 512位内的数字 2^p * 3^q * 7^r p <= 1700, q <= 1073, r <= 605 但总可能是很少的
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-3-3 15:08:05 | 显示全部楼层
512位整数仅还有2,3,7因子的共 185172417个 而这里的数字位中不能有5 这可以筛掉一大部分了
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-3-3 15:09:33 | 显示全部楼层
这个结论应该成立,但是证明不容易。 主要是在于因子2的数目应该越多越好(而最终结果素数里面应该含有不少8)
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-3-3 15:19:42 | 显示全部楼层
可以先把符合条件的筛出来 有没有某种更好的限制 比如能否求出每个数字对10^n的一个模 以简化筛选????
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-3-3 15:21:18 | 显示全部楼层
10^8内的数字有多少数位有5的?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-3-3 16:20:23 | 显示全部楼层
原帖由 medie2005 于 2009-3-3 13:37 发表 p(n)=12要困难很多. 我目前正在找10^100内的11阶数, 但目前未发现一个.
我只穷举因子2,3,7.看来10^200以内都不行
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-3-3 16:20:52 | 显示全部楼层
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <gmp.h>
  4. #include <math.h>
  5. #define l2 1700
  6. #define l3 1073
  7. #define l7 605
  8. mpz_t t2, t3, t7, tn;
  9. mpz_t a, b, c;
  10. char out[1024];
  11. int filter(unsigned int i, unsigned int j, unsigned int k)
  12. {
  13. char * c = out;
  14. if ((i == 0) && (j == 0)) return 0;
  15. if ((j == 0) && (k == 0)) return 0;
  16. mpz_pow_ui(a, t2, i);
  17. mpz_pow_ui(b, t3, j);
  18. mpz_pow_ui(tn, t7, k);
  19. mpz_mul(tn, tn, a);
  20. mpz_mul(tn, tn, b);
  21. mpz_get_str(out, 10, tn);
  22. // printf("%s\n", out);
  23. while (*c)
  24. {
  25. if (*c == '5')
  26. return 0;
  27. c ++;
  28. }
  29. return 1;
  30. }
  31. int main(void)
  32. {
  33. int i, j, k;
  34. int p = 0;
  35. mpz_init(t2);
  36. mpz_init(t3);
  37. mpz_init(t7);
  38. mpz_init(tn);
  39. mpz_init(a);
  40. mpz_init(b);
  41. mpz_init(c);
  42. mpz_set_ui(t2, 2);
  43. mpz_set_ui(t3, 3);
  44. mpz_set_ui(t7, 7);
  45. for (i = 0; i <= l2; i ++)
  46. for (j = 0; j <= l3; j ++)
  47. for (k = 0; k <= l7; k ++)
  48. if (log10(2.0) * i + log10(3.0) * j + log10(7.0) * k <= 512.0)
  49. if (filter(i, j, k))
  50. {
  51. printf("%u, %u, %u\n", i, j, k);
  52. p ++;
  53. }
  54. printf("Total: %u\n", p);
  55. mpz_clear(c);
  56. mpz_clear(b);
  57. mpz_clear(a);
  58. mpz_clear(tn);
  59. mpz_clear(t2);
  60. mpz_clear(t3);
  61. mpz_clear(t7);
  62. return 0;
  63. }
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2024-11-24 10:07 , Processed in 0.026200 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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