zoukankan      html  css  js  c++  java
  • 递推-超级素数

    设计要点

    根据超级素数的定义,m位超级素数去掉高位数字后是m-1位超级素数。一般地,k(k=2,3,......,m)位超级素数去掉高位数字后是k-1位超级素数。

    那么,在已求得g个k-1位超级素数a[i](i=1,2,...,g)时在a[i]的高位加上一个数字j(j=1,2,...,9),得到9g个k位候选数f=j*e[k]+a[i](e[k]=10^(k-1)),只要对这9g个k位候选数检测。这就是从k-1递推到k的递推关系。

    注意到超级m(m>1)位素数的个位数字必然是3或7,则得递推的初始(边界)条件:a[1]=3,a[2]=7,g=2;

    package test;
    import java.util.*;
    
    public class test1 {
        public static void main(String[] args) {
            int i,g,j,k,m,t,s;
            long d = 0,f;
            double[] a=new double[20000];
            double[] e=new double[20];
            double[] b=new double[20000];
            Scanner input=new Scanner(System.in);
            m=input.nextInt();
            g=2;s=0;
            a[1]=3;a[2]=7;e[1]=1;
            for(k=2;k<=m;k++){
                e[k]=e[k-1]*10;
                t=0;
                for(j=1;j<=9;j++)
                    for(i=1;i<=g;i++){
                        f=(long)(j*e[k]+a[i]);
                        if(p(f)==1){
                            t++;b[t]=f;
                            if(k==m){
                                s++;
                                d=f;
                                System.out.println();
                            }
                        }
                    }
                g=t;
                for(i=1;i<=g;i++) a[i]=b[i];
            }
            System.out.println("共"+s+"个"+m+"位超级素数");
            System.out.println("其中最大数为"+d);
        }
        static int p(long k){//设计素数检测函数
            int j,h,z;
            z=0;
            if(k==2)z=1;
            if(k>=3&&k%2==1){
                for(h=0,j=3;j<=Math.sqrt(k);j+=2)
                    if(k%j==0){
                        h=1;
                        break;
                    }
                if(h==0) z=1;//k为素数返回1,否则返回0
            }
            return z;
        }
        
    }
  • 相关阅读:
    JVM(二)-运行时数据区
    JVM(一)-JVM入门
    java设计模式之观察者模式
    开散列表
    闭散列表
    VTWORAY 常用配置
    kubernetes 提示1 node(s) had taints that the pod didn't tolerate
    SOCKS5转PPTP VTWORAY配置文件与IPTables配置文件
    【Docker】多阶段构建
    【Docker】容器内存扩容
  • 原文地址:https://www.cnblogs.com/ljs-666/p/8120076.html
Copyright © 2011-2022 走看看