f90boy 2024-05-20 11:23 采纳率: 59.5%
浏览 11
已结题

12位以内且只能用1、3、7构成的质数有多少?和是多少?

1~12 位正整数中,只能用数字 1、3、7 构成的质数,一共有多少个?它们的和是多少?
例如:3、11、13 …
求算法和计算结果;
请不要将 AI 工具生成的内容贴上来作答(GPT能答对,就不来提问了)。

  • 写回答

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
    

    在线编译运行截图

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
    1人已打赏
查看更多回答(6条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月25日
  • 已采纳回答 5月25日
  • 修改了问题 5月20日
  • 修改了问题 5月20日
  • 展开全部