1~12 位正整数中,只能用数字 1、3、7 构成的质数,一共有多少个?它们的和是多少?
例如:3、11、13 …
求算法和计算结果;
请不要将 AI 工具生成的内容贴上来作答(GPT能答对,就不来提问了)。
12位以内且只能用1、3、7构成的质数有多少?和是多少?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
7条回答 默认 最新
f90boy 2024-05-25 15:11关注有点繁琐。
不过,反复思考,终于有了一个思路。用四进制数模拟枚举只含 137 的正整数,再进行质数检验。由于 12 位以内的四进制数只有 4^12-1 = 16777215 个,使得计算量大大减少到十万分之一。
计算结果:
质数个数 111279 ;
总和 430092825414123 ;
计算耗时 7 s 。
附 fortran 代码:
integer*8 k,kk data m/1/,kk/3/ call cpu_time(x) aa:do i=2,4**12-1 ii=i k=0 do j=0,9 n=mod(ii,4) if(n.eq.0) cycle aa if(n.eq.2) then n=3 else if(n.eq.3) then n=7 end if k=k+n*10_8**j ii=ii/4 if(ii.eq.0) exit end do if(mod(k,3).eq.0) cycle ii=sqrt(k*1.0) do j=5,ii,6 do j1=j,j+2,2 if(mod(k,j1).eq.0) cycle aa end do end do m=m+1 kk=kk+k !write (*,'(g0a$)') k,',' end do aa write (*,'(/ag0)') ' total = ',m write(*,'(ag0)') ' sum = ',kk call cpu_time(x) write(*,'(ag0a)') ' time = ',int(x),' s' end
在线编译运行截图
本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报 编辑记录解决 2无用