找到比目前公开最大的孪生素数还要大的孪生素数,大家帮忙验证
素数吧
全部回复
仅看楼主
level 4
通过百度网盘分享的文件:390001--01.txt
链接:百度网盘
提取码:mvqg
通过百度网盘分享的文件:385000位孪生素数--02.txt
链接:百度网盘
提取码:mvqg
通过百度网盘分享的文件:390001--03.txt
链接:百度网盘
提取码:mvqg
通过百度网盘分享的文件:385000位孪生素数--03.txt
链接:百度网盘
提取码:mvqg
通过百度网盘分享的文件:390001--02.txt
链接:百度网盘
提取码:mvqg
通过百度网盘分享的文件:390000位孪生素数--01.txt
链接:百度网盘
提取码:mvqg
通过百度网盘分享的文件:200000位孪生素数--1.txt
链接:百度网盘
提取码:mvqg
2025年04月28日 11点04分 1
level 8
兄弟,你数学吧的贴子怎么删了?
2025年05月14日 01点05分 2
结果是错误的,我就删了
2025年05月17日 11点05分
@贴吧用户_0R9592X 原来如此
2025年05月17日 11点05分
@贴吧用户_0R9592X 关于素数你有什么算法?
2025年05月17日 11点05分
@我一年是玩了啥啊 10^1000次方,大概两秒钟一个素数,AMD 5600X CPU
2025年05月17日 22点05分
level 8
你直接申请专利看能过不,过了再公开代码,看有人买你代码的专利没有,申请了专利,一般是抢不走的,可以靠专利赚一点点钱
2025年05月18日 15点05分 3
2025年06月02日 01点06分
没钱去申请,也没有精力。另外,我根本不相信学术界。一公开方法,孪生素数猜想就证实了是完全成立的,这个名气太大,以学术界来说,我这种小虾米………我在B站发布的搜索孪生素数的视频,只是为了让明白人了解下速度如何。可惜了解的人不多,换不成钱也没关系,我就当乐子自己玩了。
2025年05月18日 16点05分
我把代码发出来:但是好像回复不了?
2025年06月02日 01点06分
@贴吧用户_0R9592X 你可以另开一个帖子发代码
2025年06月02日 01点06分
level 4
这是一个关于孪生素数猜想和哥德巴赫猜想的我的个人的想法,
孪生素数猜想的结果应该是:孪生素数是无限的。
哥德巴赫猜想的结果应该是:哥德巴赫是成立的。
看到这里,你肯定不服气,我的证明,你只要承认素数只存在于:6*N+1和6*N-1这两个数列中,
你就没有任何理由否定我的证明,废话不多说,直接上干货!
我们先来看看6*N+1和6*N-1两个数列:(前10行:)
1 2 3 4 5 6
7 8 9_3-3 10 11 12_2-2-3
13 14 15_3-5 16 17 18_2-3-3
19 20 21_3-7 22 23 24_2-2-2-3
25_5-5 26 27_3-3-3 28 29 30_2-3-5
31 32 33_3-11 34 35_5-7 36_2-2-3-3
37 38 39_3-13 40_2-2-2-5 41 42_2-3-7
43 44 45_3-3-5 46 47 48_2-2-2-2-3
49_7-7 50_2-5-5 51_3-17 52 53 54_2-3-3-3
55_5-11 56_2-2-2-7 57_3-19 58 59 60_2-2-3-5
可以特别明显的看出,除了1列和5列,其它的列全部是合数,这没问题吧。
好,下面我们来看看,我为什么要在名字上面加一个三十而立:
我们看一看下面的这个神奇的数列:
这也是三十而立的由来。
以下是代码,在windows下,VS2022下编译通过:
#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
// 检查一个数是否是质数
int isPrime(int n) {
if (n <= 1) return 0;
for (int i = 3; i <= sqrt(n); i=i+2)
{
if (n % i == 0) return 0;
}
return 1;
}
// 分解质因数并返回格式化的字符串
char* factorize(int n) {
if (n == 1) return NULL;
char* factors = (char*)malloc(1024);
factors[0] = '\0';
for (int i = 2; i <= n; ++i)
{
while (n % i == 0)
{
strcat(factors, _itoa(i, (char*)alloca(10), 10));
strcat(factors, "-");
n /= i;
}
}
// 去掉最后一个'-'
if (factors[0] != '\0') {
factors[strlen(factors) - 1] = '\0';
}
return factors;
}
int main() {
int numberPerLine, lineCount;
printf("请输入每行显示的数字个数:");
scanf("%d", &numberPerLine);
printf("请输入行数:");
scanf("%d", &lineCount);
if (numberPerLine <= 0 || lineCount <= 0) {
printf("输入无效,必须是正整数。\n");
return -1;
}
int totalNumbers = numberPerLine * lineCount;
FILE* file = fopen("output.txt", "w");
if (!file) {
printf("无法打开文件。\n");
return -2;
}
for (int i = 1; i <= totalNumbers; i=i+1) {
char output[256];
// 判断是否为质数
if (isPrime(i)) {
sprintf(output, "%d", i);
}
else {
char* factors = factorize(i);
if (!factors || *factors == '\0') {
sprintf(output, "%d", i);
}
else {
sprintf(output, "%d_%s", i, factors);
}
free(factors); // 释放分配的内存
}
// 左对齐占20字符
char buffer[20];
memset(buffer, ' ',19);
strncpy(buffer, output, strlen(output) < 20 ? strlen(output) : 20);
buffer[19] = '\0'; // 确保以null结尾
// 写入文件
fprintf(file, "%s", buffer);
// 换行处理
if (i % numberPerLine == 0 && i != totalNumbers) {
fprintf(file, "\n");
}
}
fclose(file);
printf("输出已写入output.txt\n");
return 0;
}
好了,代码贴好了。我们接着看看上面的数列,把所有的合数列去掉以后的结果:
看以上的素数列表,是不是很神奇?
好吧,你可能不方便编译代码,我来一个文字说明吧:
先说偶数列:2,4,6,8......26,28,30,这30以内的所有的15个偶数,加上30或者30的倍数,都是合数,这个很容易证出来吧。
再说奇数:3,5,9,15,21,25,27,这7个奇数,加上30的或者30的倍数,同样都是合数,这个也没有问题吧。
这样,就只余下:1,7,11,13,17,19,23,29这8个奇数了,奇迹就在这8个奇数数列中:
首先,这8个数列中,包含了所有的质数,这是关键。
再看这8个奇数,孪生素数有:11和13,17和19,29和31,(这里的奇数1列,因为29+2=31,)
看到这里,奇迹是不是就出现了?嘻嘻............
你看,只要11和13,17和19,29和31这三对孪生素数的数列,两个只要同时为素数,是不是就找到了一对孪生素数??
再说明白一点:
所有的孪生素数,P和P+2,只要P除以30,余数一定是11,17,29三个的其中之一,没有例外!!(重点1)
你看,1,7,11,13,17,19,23,29这8个奇数数列加上30或30的倍数包含了所有的质(素)数,
而11和13,17和19,29和31这三对孪生素数加上30或者30的倍数数列永远不会结束,所有孪生素数是无限多的。
在重点结论1中,孪生素数P和P+2,只要P除以30,余数一定是11,17,29三个的其中之一,没有例外!!
只要11和13,17和19,29和31这三对孪生素数的数列加上30或者30的倍数,当每对都同时为素数时,就找到了一对孪生素数。
也就是说,可以以P分别为11,17和29再加上30或者30的倍数,就可以无限的搜索到孪生素数。下面我附上源代码,
源代码在windows下,VS2022中编译通过。
到这里,关于孪生素数猜想,我已经完成了证明,是不是非常的简单,简单的超乎任何人的想像!!
代码如下 :
/
以上代码,是输入需要的孪生素数的位数,然后通过我的理论向上和向下搜索孪生素数。
=====================================================================================================================
引申:上面的理论中30=2*3*5,是可以展开的,也就是说:210=2*3*5*7..2310=2*3*5*7*11......
可以一直这样展开下去,用来生成素数或者是孪生素数!!那当然缩小一下就是:6=2*3。
2025年06月02日 01点06分 4
研究一下,每30个自然数,对齐换行,上面是对齐换行的代码,
2025年06月02日 01点06分
研究一下,每30个自然数,对齐换行,上面是对齐换行的代码,
2025年06月02日 01点06分
@贴吧用户_0R9592X 你可以拿着你的代码去问那些计算机高手问下效率如何了
2025年06月02日 01点06分
@我一年是玩了啥啊 我没资源,没人。
2025年06月02日 05点06分
level 4
这是一个关于孪生素数猜想和哥德巴赫猜想的我的个人的想法,
孪生素数猜想的结果应该是:孪生素数是无限的。
哥德巴赫猜想的结果应该是:哥德巴赫是成立的。
看到这里,你肯定不服气,我的证明,你只要承认素数只存在于:6*N+1和6*N-1这两个数列中,
你就没有任何理由否定我的证明,废话不多说,直接上干货!
我们先来看看6*N+1和6*N-1两个数列:(前10行:)
1 2 3 4 5 6
7 8 9_3-3 10 11 12_2-2-3
13 14 15_3-5 16 17 18_2-3-3
19 20 21_3-7 22 23 24_2-2-2-3
25_5-5 26 27_3-3-3 28 29 30_2-3-5
31 32 33_3-11 34 35_5-7 36_2-2-3-3
37 38 39_3-13 40_2-2-2-5 41 42_2-3-7
43 44 45_3-3-5 46 47 48_2-2-2-2-3
49_7-7 50_2-5-5 51_3-17 52 53 54_2-3-3-3
55_5-11 56_2-2-2-7 57_3-19 58 59 60_2-2-3-5
可以特别明显的看出,除了1列和5列,其它的列全部是合数,这没问题吧。
好,下面我们来看看,我为什么要在名字上面加一个三十而立:
我们看一看下面的这个神奇的数列:
这也是三十而立的由来。
以下是代码,在windows下,VS2022下编译通过:
#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
// 检查一个数是否是质数
int isPrime(int n) {
if (n <= 1) return 0;
for (int i = 3; i <= sqrt(n); i=i+2)
{
if (n % i == 0) return 0;
}
return 1;
}
// 分解质因数并返回格式化的字符串
char* factorize(int n) {
if (n == 1) return NULL;
char* factors = (char*)malloc(1024);
factors[0] = '\0';
for (int i = 2; i <= n; ++i)
{
while (n % i == 0)
{
strcat(factors, _itoa(i, (char*)alloca(10), 10));
strcat(factors, "-");
n /= i;
}
}
// 去掉最后一个'-'
if (factors[0] != '\0') {
factors[strlen(factors) - 1] = '\0';
}
return factors;
}
int main() {
int numberPerLine, lineCount;
printf("请输入每行显示的数字个数:");
scanf("%d", &numberPerLine);
printf("请输入行数:");
scanf("%d", &lineCount);
if (numberPerLine <= 0 || lineCount <= 0) {
printf("输入无效,必须是正整数。\n");
return -1;
}
int totalNumbers = numberPerLine * lineCount;
FILE* file = fopen("output.txt", "w");
if (!file) {
printf("无法打开文件。\n");
return -2;
}
for (int i = 1; i <= totalNumbers; i=i+1) {
char output[256];
// 判断是否为质数
if (isPrime(i)) {
sprintf(output, "%d", i);
}
else {
char* factors = factorize(i);
if (!factors || *factors == '\0') {
sprintf(output, "%d", i);
}
else {
sprintf(output, "%d_%s", i, factors);
}
free(factors); // 释放分配的内存
}
// 左对齐占20字符
char buffer[20];
memset(buffer, ' ',19);
strncpy(buffer, output, strlen(output) < 20 ? strlen(output) : 20);
buffer[19] = '\0'; // 确保以null结尾
// 写入文件
fprintf(file, "%s", buffer);
// 换行处理
if (i % numberPerLine == 0 && i != totalNumbers) {
fprintf(file, "\n");
}
}
fclose(file);
printf("输出已写入output.txt\n");
return 0;
}
看以上的素数列表,是不是很神奇?
好吧,你可能不方便编译代码,我来一个文字说明吧:
先说偶数列:2,4,6,8......26,28,30,这30以内的所有的15个偶数,加上30或者30的倍数,都是合数,这个很容易证出来吧。
再说奇数:3,5,9,15,21,25,27,这7个奇数,加上30的或者30的倍数,同样都是合数,这个也没有问题吧。
这样,就只余下:1,7,11,13,17,19,23,29这8个奇数了,奇迹就在这8个奇数数列中:
首先,这8个数列中,包含了所有的质数,这是关键。
再看这8个奇数,孪生素数有:11和13,17和19,29和31,(这里的奇数1列,因为29+2=31,)
看到这里,奇迹是不是就出现了?嘻嘻............
你看,只要11和13,17和19,29和31这三对孪生素数的数列,两个只要同时为素数,是不是就找到了一对孪生素数??
再说明白一点:
所有的孪生素数,P和P+2,只要P除以30,余数一定是11,17,29三个的其中之一,没有例外!!(重点1)
你看,1,7,11,13,17,19,23,29这8个奇数数列加上30或30的倍数包含了所有的质(素)数,
而11和13,17和19,29和31这三对孪生素数加上30或者30的倍数数列永远不会结束,所有孪生素数是无限多的。
在重点结论1中,孪生素数P和P+2,只要P除以30,余数一定是11,17,29三个的其中之一,没有例外!!
只要11和13,17和19,29和31这三对孪生素数的数列加上30或者30的倍数,当每对都同时为素数时,就找到了一对孪生素数。
也就是说,可以以P分别为11,17和29再加上30或者30的倍数,就可以无限的搜索到孪生素数。下面我附上源代码,
源代码在windows下,VS2022中编译通过。
到这里,关于孪生素数猜想,我已经完成了证明,是不是非常的简单,简单的超乎任何人的想像!!
代码如下 :
// 孪生--01.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
/字太多发不上来,
以上代码,是输入需要的孪生素数的位数,然后通过我的理论向上和向下搜索孪生素数。
=====================================================================================================================
通过网盘分享的文件:数论基础之三十而立.docx
链接: [有效] https://pan.baidu.com/s/1aamCwSJv7-kcd1DPk4Bbpg?pwd=tb4f 提取码: tb4f
引申:上面的理论中30=2*3*5,是可以展开的,也就是说:210=2*3*5*7..2310=2*3*5*7*11......
可以一直这样展开下去,用来生成素数或者是孪生素数!!那当然缩小一下就是:6=2*3。
2025年06月02日 01点06分 5
把代码发出来了,不当谜语人,先为你点赞[真棒][真棒]
2025年06月02日 01点06分
1