热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

用C语言思想改写的用筛法求质数程序(第2修订版)的一些源代码

DecompiledbyJadv1.5.8e2.Copyright2001PavelKouznetsov.Jadhomepage:http:kpdus.tri

// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3)
// Source File Name:   Sieve.java

import java.io.PrintStream;

public class Sieve
{

    public Sieve()
    {
    }

    public static void main(String args[])
    {
        int i = 100;
        try
        {
            i = Integer.parseInt(args[0]);
        }
        catch(Exception exception) { }
        boolean aflag[] = new boolean[i + 1];
        for(int j = 0; j <= i; j++)
            aflag[j] = true;

        aflag[0] = aflag[1] = false;
        int k = (int)Math.ceil(Math.sqrt(i));
        for(int l = 0; l <= k; l++)
            if(aflag[l])
            {
                for(int i1 = 2 * l; i1 <= i; i1 += l)
                    aflag[i1] = false;

            }

        int j1;
        for(j1 = i; !aflag[j1]; j1--);
        System.out.println("The largest prime less than or equal to " + i + " is " + j1);
    }
}
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3)
// Source File Name:   Sieve2.java

import java.io.PrintStream;

public class Sieve2
{

    public Sieve2()
    {
    }

    public static void main(String args[])
    {
        int i = 100;
        try
        {
            i = Integer.parseInt(args[0]);
        }
        catch(Exception exception) { }
        int j = (i + 1) / 2;
        boolean aflag[] = new boolean[j + 1];
        int k = 0;
        for(int l = 0; l <= j; l++)
            aflag[l] = true;

        aflag[0] = false;
        aflag[1] = true;
        int i1 = (int)Math.ceil(Math.sqrt(i));
        for(int j1 = 3; j1 <= i1; j1 += 2)
            if(aflag[(j1 - 1) / 2])
            {
                for(int k1 = 3 * j1; k1 <= i; k1 = k1 + j1 + j1)
                    aflag[(k1 - 1) / 2] = false;

            }

        int l1 = 2;
        if(i <= 2)
            l1 = 2;
        else
        if(i % 2 == 1 && aflag[(i - 1) / 2])
            l1 = i;
        else
            for(l1 = i - 1 - i % 2; !aflag[(l1 - 1) / 2]; l1 -= 2);
        System.out.println("The largest prime less than or equal to " + i + " is " + l1 + " cycle time:" + k);
    }
}
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3)
// Source File Name:   Sieve3.java

import java.io.PrintStream;

public class Sieve3
{

    public Sieve3()
    {
    }

    public static void main(String args[])
    {
        int i = 100;
        try
        {
            i = Integer.parseInt(args[0]);
        }
        catch(Exception exception) { }
        int j = (i + 1) / 2;
        boolean aflag[] = new boolean[j + 1];
        int k = 0;
        for(int l = 0; l <= j; l++)
            aflag[l] = true;

        aflag[0] = false;
        aflag[1] = true;
        int i1 = (int)Math.ceil(Math.sqrt(i));
        for(int j1 = 3; j1 <= i1; j1 += 2)
            if(aflag[(j1 - 1) / 2])
            {
                for(int k1 = j1 * j1; k1 <= i; k1 = k1 + j1 + j1)
                {
                    int i2 = (k1 - 1) / 2;
                    if(aflag[i2])
                        aflag[i2] = false;
                }

            }

        int l1 = 2;
        if(i <= 2)
            l1 = 2;
        else
        if(i % 2 == 1 && aflag[(i - 1) / 2])
            l1 = i;
        else
            for(l1 = i - 1 - i % 2; !aflag[(l1 - 1) / 2]; l1 -= 2);
        System.out.println("The largest prime less than or equal to " + i + " is " + l1 + " cycle time:" + k);
    }
}
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3)
// Source File Name:   Sieve4.java

import java.io.PrintStream;

public class Sieve4
{

    public Sieve4()
    {
    }

    public static void main(String args[])
    {
        int i = 100;
        try
        {
            i = Integer.parseInt(args[0]);
        }
        catch(Exception exception) { }
        int j = (i + 1) / 2;
        long l = System.currentTimeMillis();
        boolean aflag[] = new boolean[j + 1];
        int k = 0;
        aflag[0] = false;
        aflag[1] = true;
        int i1 = (int)Math.ceil(Math.sqrt(i));
        int j1 = (i - 1) / 2 - 1;
        for(int l1 = 2; l1 <= j1;)
        {
            aflag[l1++] = true;
            aflag[l1++] = true;
            aflag[l1++] = false;
        }

        long l2 = System.currentTimeMillis() - l;
        System.out.println(l2);
        int j2 = (i1 - 1) / 2;
        int k2 = (i - 1) / 2;
        for(int k1 = 2; k1 <= j2; k1++)
            if(aflag[k1])
            {
                for(int i2 = k1 * (2 * k1 + 2); i2 <= k2; i2 = i2 + k1 + k1 + 1)
                    if(aflag[i2])
                        aflag[i2] = false;

            }

        int i3 = 2;
        if(i <= 2)
            i3 = 2;
        else
        if(i % 2 == 1 && aflag[(i - 1) / 2])
            i3 = i;
        else
            for(i3 = i - 1 - i % 2; !aflag[(i3 - 1) / 2]; i3 -= 2);
        long l3 = System.currentTimeMillis() - l;
        System.out.println(l3);
        System.out.println("The largest prime less than or equal to " + i + " is " + i3 + " cycle time:" + k);
    }
}
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3)
// Source File Name:   Sieve5.java

import java.io.PrintStream;

public class Sieve5
{

    public Sieve5()
    {
    }

    public static int getisp(int i)
    {
        return isprime[i >> 3] >> (i & 7) & 1;
    }

    public static void main(String args[])
    {
        int i = 100;
        try
        {
            i = Integer.parseInt(args[0]);
        }
        catch(Exception exception) { }
        int j = (i + 1) / 2;
        isprime = new byte[j / 8 + 2];
        int k = 0;
        for(int l = 0; l <= j / 8 + 1; l++)
            isprime[l] = -1;

        isprime[0] &= 0xfe;
        isprime[0] |= 2;
        int k1 = (int)Math.ceil(Math.sqrt(i));
        boolean flag = false;
        int i1 = (i - 1) / 2;
        for(int i2 = 4; i2 <= i1; i2 += 3)
            isprime[i2 >> 3] &= ~(1 <<(i2 & 7));

        char c = '/0';
        int j2 = (k1 - 1) / 2;
        int k2 = (i - 1) / 2;
        for(int j1 = 2; j1 <= j2; j1++)
        {
            c++;
            if(c == '/003')
                c = '/0';
            else
            if(getisp(j1) == 1)
            {
                int l1 = ((j1 <<2) + 1) % 3;
                for(int l2 = j1 * (2 * j1 + 2); l2 <= k2; l2 = l2 + j1 + j1 + 1)
                    if(++l1 == 3)
                        l1 = 0;
                    else
                    if(getisp(l2) == 1)
                        isprime[l2 >> 3] &= ~(1 <<(l2 & 7));

            }
        }

        int i3 = 2;
        if(i <= 2)
            i3 = 2;
        else
        if(i % 2 == 1 && getisp((i - 1) / 2) == 1)
        {
            i3 = i;
        } else
        {
            i3 = i - 1 - i % 2;
            do
            {
                int j3 = (i3 - 1) / 2;
                if(getisp(j3) == 1)
                    break;
                i3 -= 2;
            } while(true);
        }
        System.out.println("The largest prime less than or equal to " + i + " is " + i3 + " cycle time:" + k);
    }

    static byte isprime[];
}
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3)
// Source File Name:   Sieve7.java

import java.io.PrintStream;

public class Sieve7
{

    public Sieve7()
    {
    }

    public static int getisp(int i)
    {
        return isprime[i >> 3] >> (i & 7) & 1;
    }

    public static void main(String args[])
    {
        int i = 100;
        try
        {
            i = Integer.parseInt(args[0]);
        }
        catch(Exception exception) { }
        int j = (i + 1) / 2;
        isprime = new byte[((j / 8) * 2) / 3 + 2];
        int k = 0;
        for(int l = 0; l <= ((j / 8) * 2) / 3 + 1; l++)
            isprime[l] = -1;

        isprime[0] &= 0xfe;
        isprime[0] |= 2;
        int l1 = (int)Math.ceil(Math.sqrt(i));
        boolean flag = false;
        int i1 = (i - 1) / 2;
        char c = '/0';
        for(int j1 = 5; j1 <= l1; j1 += 2)
        {
            c++;
            if(c == '/003')
            {
                c = '/0';
            } else
            {
                int j2 = j1 / 3;
                if(getisp(j2) == 1)
                {
                    int i2 = (j1 + j1) % 3 - 1;
                    for(int l2 = j1 * j1; l2 <= i; l2 = l2 + j1 + j1)
                        if(++i2 == 3)
                        {
                            i2 = 0;
                        } else
                        {
                            int i3 = l2 / 3;
                            if(getisp(i3) == 1)
                                isprime[i3 >> 3] &= ~(1 <<(i3 & 7));
                        }

                }
            }
        }

        int k2 = 2;
        if(i <= 2)
            k2 = 2;
        else
        if(i <= 4)
            k2 = 3;
        else
        if(i % 2 == 1 && getisp(i / 3) == 1)
        {
            k2 = i;
        } else
        {
            for(int k1 = (j * 2) / 3; k1 >= 0; k1--)
            {
                if(getisp(k1) != 1)
                    continue;
                k2 = 3 * k1 + k1 % 2 + 1;
                if(k2                     break;
            }

        }
        System.out.println("The largest prime less than or equal to " + i + " is " + k2 + " cycle time:" + k);
    }

    static byte isprime[];
}


推荐阅读
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 代理模式的详细介绍及应用场景
    代理模式是一种在软件开发中常用的设计模式,通过在客户端和目标对象之间增加一层中间层,让代理对象代替目标对象进行访问,从而简化系统的复杂性。代理模式可以根据不同的使用目的分为远程代理、虚拟代理、Copy-on-Write代理、保护代理、防火墙代理、智能引用代理和Cache代理等几种。本文将详细介绍代理模式的原理和应用场景。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • Webpack5内置处理图片资源的配置方法
    本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • Android日历提醒软件开源项目分享及使用教程
    本文介绍了一款名为Android日历提醒软件的开源项目,作者分享了该项目的代码和使用教程,并提供了GitHub项目地址。文章详细介绍了该软件的主界面风格、日程信息的分类查看功能,以及添加日程提醒和查看详情的界面。同时,作者还提醒了读者在使用过程中可能遇到的Android6.0权限问题,并提供了解决方法。 ... [详细]
  • 本文介绍了贝叶斯垃圾邮件分类的机器学习代码,代码来源于https://www.cnblogs.com/huangyc/p/10327209.html,并对代码进行了简介。朴素贝叶斯分类器训练函数包括求p(Ci)和基于词汇表的p(w|Ci)。 ... [详细]
  • Jquery 跨域问题
    为什么80%的码农都做不了架构师?JQuery1.2后getJSON方法支持跨域读取json数据,原理是利用一个叫做jsonp的概念。当然 ... [详细]
author-avatar
难得有人待我好_212
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有