首页 >>  正文

python求最大素数的代码

来源:baiyundou.net   日期:2024-09-22

丰色 发自 凹非寺

量子位 | 公众号 QbitAI

不到一个月的时间,陶哲轩又一篇论文上线:

这次是关于欧拉函数的单调非递减序列,他通过初等论证证明了一个名为M(x)函数的渐近式。

(即随着x增大,M(x)的行为趋势)

该函数在他之前的一篇博客中有所提及,大意是指一系列从1到x的数字中,满足欧拉φ函数是非递减的最长子序列的长度。

毫不意外,这篇论文的出产过程中也用到了AI。

不过,这次陶哲轩承认:

AI工具对他的核心研究并不那么有用(但他也表示可能是不想打破一些已有习惯去尝试)

对他帮助最大的其实是编码和生成论文中的流程图初稿

对于前者,陶哲轩已多次提及。

GPT可以让我不用去管计算任务中究竟用的是何种语言(Python还是SAGE、regex等),几乎只需用自然语言向它提出请求,它就能为我输出合格的代码(尽管我还得再编译一下)

这真的开始改变我的工作流程。

过去由于我害怕困难,一直避免使用代码密集型的任务解决问题;现在,这种情况正在消失,我发现我变得愿意在日常工作中做一些编码。

那么,就来简单看看这次的论文究竟说了什么。

准备长脑子了咳咳。

欧拉函数的单调非递减序列

该论文研究主要涉及函数M(x), 它定义的是数字1到x的最长子序列的长度,在这个子序列中,欧拉函数ψ是非递减的。

(欧拉函数ψ(n)通常用于表示小于或等于n的正整数中与n互质的正整数的数量)

由于M的前几个值是:

1, 2, 3, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 11, 12, 12, …

所以,举个例子:

M(6)就等于5

因为欧拉函数在集合{1,2,3,4,5}或{1,2,3,4,6}上是非递减的,在{1,2,3,4,5,6}上不是。

而由于对于任何素数p,ψ(p)=p-1,我们有M(x)≥π(x)。

其中π(x)是素数计数函数(用于表示小于或等于x的正整数中的素数的数量)

根据经验,这些素数非常接近M(x)的最大长度;Pollack, Pomerance和Treviño已通过数值计算推测出下式

中的x=10⁷ 。

相比之下,以前最著名的上限基本上是以下形式:

对于该式子,在显式常数C=0.81781中,x→∞。

而将该结果与上面的结果相结合,陶哲轩就得到了渐近式

所以在特殊情况下

它既回答了Erdős的问题,也回答了与Pollack, Pomerance和Treviño所密切相关的问题。

陶哲轩介绍,该证明所用方法大多数都很基础(解决数论中最先进结果所需的只是带有经典误差项的素数定理)

基本思想是隔离给定数字1≤n≤x中的一个关键素因子p,因为它对欧拉函数有相当大的影响。

例如,对于“典型”数字n,可以因式分解为:

其中p2是中等大小的素数,p1是明显更大的那个,d则是一个所有素数因子均小于p2的数。这可得出:

因此,如果我们暂时保持d固定,并将n定位到相对较短的区间,那么ψ只能在n中是非递减的——如果p2也同时非递减。

事实证明,特别是在p2很大的情况下,这个方式显著减少了该机制中非递减序列的可能长度。

这个过程可以形式化,达成方式是通过将p的范围划分为各种子区间并检查它 (以及ψ上的单调性假设)如何约束与每个子区间相关联的n值。

而当p2很小时,我们使用因式分解:

其中d非常“平滑”(即没有大素数因子),而p是大素数。我们得到近似值:

并得出结论:为了使ψ不变小,约等式右边的分数基本上必须是分段常数。

再进行一番更仔细的分析之后,我们就能证明初步不等式,最终对于所有正有理数q得到主要定理:

陶哲轩表示,这其实是一个“小奇迹”,与以下事实有关:

公式(4)中分母的大质因数最低项必然等于d的最大质因数,这使得我们能够非常准确地得出公式(5)的左边,从而轻松构建整个公式(5)。

在论文的最后一部分,陶哲轩还讨论了强猜想(1)的一些近似反例,这些例子表明,如果不假设一些“相当强的假设”,可能很难接近证明此猜想。

论文地址:

https://arxiv.org/abs/2309.02325

参考链接:

[1]https://mathstodon.xyz/@tao/111018835694062000

[2]https://terrytao.wordpress.com/2023/09/06/monotone-non-decreasing-sequences-of-the-euler-totient-function/

— 完 —

量子位 QbitAI · 头条号签约

","gnid":"9b6b848e2160b21fa","img_data":[{"flag":2,"img":[{"desc":"","height":"341","title":"","url":"https://p0.ssl.img.360kuai.com/t018a2ad4d053c68b86.jpg","width":"1080"},{"desc":"","height":"526","title":"","url":"https://p0.ssl.img.360kuai.com/t01837e3fd4fd8005a8.jpg","width":"1080"},{"desc":"","height":"720","title":"","url":"https://p0.ssl.img.360kuai.com/t01da12707969a75c63.jpg","width":"1080"},{"desc":"","height":"857","title":"","url":"https://p0.ssl.img.360kuai.com/t01f288ae3bf42d84d5.jpg","width":"1080"},{"desc":"","height":"94","title":"","url":"https://p0.ssl.img.360kuai.com/t0140fe059b32233a23.jpg","width":"606"},{"desc":"","height":"102","title":"","url":"https://p0.ssl.img.360kuai.com/t0152dcabb913cc9f0b.jpg","width":"942"},{"desc":"","height":"124","title":"","url":"https://p0.ssl.img.360kuai.com/t01a3d30ef5ce3415db.jpg","width":"908"},{"desc":"","height":"112","title":"","url":"https://p0.ssl.img.360kuai.com/t01c19e5c1647c64084.jpg","width":"728"},{"desc":"","height":"82","title":"","url":"https://p0.ssl.img.360kuai.com/t01f20ce5ab1e26ad33.jpg","width":"442"},{"desc":"","height":"256","title":"","url":"https://p0.ssl.img.360kuai.com/t0110c791d38e7859f8.jpg","width":"1400"},{"desc":"","height":"106","title":"","url":"https://p0.ssl.img.360kuai.com/t0121d2029abfa98e1f.jpg","width":"776"},{"desc":"","height":"316","title":"","url":"https://p0.ssl.img.360kuai.com/t012fc04c2af49d010a.jpg","width":"1168"},{"desc":"","height":"856","title":"","url":"https://p0.ssl.img.360kuai.com/t019f9c699a39027fc6.jpg","width":"896"}]}],"original":0,"pat":"art_src_3,fts0,sts0","powerby":"hbase","pub_time":1694322240000,"pure":"","rawurl":"http://zm.news.so.com/59e303395e597c474ea46c0a6282647f","redirect":0,"rptid":"7990eb4891a92649","rss_ext":[],"s":"t","src":"量子位","tag":[],"title":"陶哲轩发新论文了,又是AI帮忙的那种

魏仇制2463求100以内的最大素数 - 上学吧找答案 - 上学吧普法考试
禄诗翟15867208673 ______ #include<stdio.h> int isprime(int n){ int i; if(n<=1)return 0; for(i=2;i<=n/2;i++){ if(n%i==0)return 0; } return 1; } main() { int i; for(i=1000;i>=2;i--){ if(isprime(i)){ printf("%d \n",i); return; } } } 运行结果为997

魏仇制2463VF 求100 - 1000内的最大的素数.(素质是指只能被1和本身整除的数)(997) -
禄诗翟15867208673 ______ s=0 for n=100to 1000 &&从100开始循环到1000 flag=1 &&每测试一个数是否素数,定义flag=1 for j=2to n-1 &&从1开始循环到n-1,以判断n是否为素数 if mod(n,j)=0 flag=0 &&当n能被本身和1之外的数整除,即不为素数时,flag=0 exit && 跳出内层循环 endif endfor if flag=1 s=n &&当flag=1时,即n为素数时,赋值s=n endif endfor?s &&在循环中s被一次次覆盖,其值为最后一个素数,即为最大

魏仇制2463给出一个正整数,求比它小的最大素数,或比它大的最小素数 -
禄诗翟15867208673 ______ 比他打的最小素数实现,我以前替别人答过了.那源码再贴一次. Dim flag As Integer Dim s As Integer Private Sub Form_Click() x = Val(InputBox("Enter a Integer")) s = x Do x = x + 1 Call tt(x) Loop While flag < 1 End Sub Private Sub tt(ByVal ...

魏仇制2463用VF编程求1000以内最大素数 -
禄诗翟15867208673 ______ Clear lnMax = 0 For i = 2 To 1000 m.flag = .f. For j = 2 To i - 1 If i % j == 0 m.flag = .t. Exit Endif Next If m.flag == .f. lnMax = i Endif Next?"最大素数",lnMax

魏仇制2463键盘键入一个正整数,求不大于该数的最大素数 JAVA -
禄诗翟15867208673 ______ 键盘键入一个正整数,求不大于该数的最大素数 JAVA for (int i = 1000;i>=2;i++){ for (int j = 2;jif(i%j==0)break if (j==i){ System.out.print(i+"是最大素数"); } } } }

魏仇制2463编写一程序:计算并输出M以内最大的10个素数放入文本框中,并求出它们的和.若M的值为100,则10个最大素数的和为732.
禄诗翟15867208673 ______ '添加一个TextBox 单击窗体运行此程序 代码如下: Private Sub Form_Click() Dim m As Integer m = InputBox("请输入一个数的范围:") ReDim a(1 To m) As Integer For i = m To 2 Step -1 If Prime(i) Then Text1.Text = Text1.Text & i & " " b ...

魏仇制2463设计一个函数求1至100以内所有素数中最大的前3个数之和 用delphi语言编写 -
禄诗翟15867208673 ______ function GetPrimeSum: Longint; const N = 100; //改变这个值可以调整素数范围 M = 3; //改变这个值可以调整求和范围 var sieve: array[1..N] of Byte; sum, i, j: Longint; begin sieve[1] := 0; for i := 2 to N do sieve[i] := 1; i := 2; while i begin if sieve[i] =...

魏仇制2463找出 1000 以内最大的 3 个素数 VB or C -
禄诗翟15867208673 ______ Private Sub Form_Click() Dim t As Boolean For i = 1000 To 1 Step -1 t = True For j = 2 To Sqr(i) If i Mod j = 0 Then t = False: Exit For Next If t Then k = k + 1: Print i If k = 3 Then Exit For Next End Sub 运行结果: 997 991 983

魏仇制2463C语言用2到50之内的素数,求一个最大素数p,p=p1p2p3...pm+1. -
禄诗翟15867208673 ______ 求某个范围内的所有素数可以: ──────────────代码如下───────────── #include<stdio.h> /*输出指定范围内的所有素数,并指出素数个数*/ int main(){ int a=0,b=0,k=0; printf("请输入一个有效的正整数范围,形...

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024