Java

本类阅读TOP10

·使用MyEclipse开发Struts框架的Hello World!(录像1)
·hibernate配置笔记
·AOP编程入门--Java篇
·linux下Tomcat 5.0.20 与 Apache 2 安装/集成/配置
·在win2003下整合了整合Tomcat5.5+ apache_2.0.53+ mod_jk_2.0.47.dll
·构建Linux下IDE环境--Eclipse篇
·Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
·ASP、JSP、PHP 三种技术比较
·Tomcat5.5.9的安装配置
·AWT GUI 设计笔记(二)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
一个根据筛选法求出100以内的所有素数的小程序

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

//根据筛选法求出100以内的所有素数,所谓筛选法是指从小到大筛去一个以知素数的所有倍数,
//例如,根据2我们可筛去4,6,8,...98,100等数.然后根据3可筛去9,15,...99等数(注意此时6,
//12等数早就被筛去了),由于4被筛去了,下一个用于筛选的素数是5...依次类推,最后剩余的就
//是100以内的素数.
/*
*auther starshus
*
*Date 04/11/20
*/
//6.7.4
public class Prime
{
    private static final int MAX=100;
    public static void init(int[] num)//定义数组,里面装从1到100
    {
        int i=0;
        for(;i<MAX;i++)
        {
            num[i]=i+1;
        }
    }
    public static int count(int[] num)//在程序运行后,计算素数个数
    {
        int n=0,i=0;
        for(;i<MAX;i++)
        {
            if(num[i]!=0)//非素数将被置零
               n++;
        }
        return n;
    }
    public static void printf(int[] num)//输出所有素数,每10个转行一次
    {
        int i=0,n=0;
        for(;i<MAX;i++)
            if(num[i]!=0)
            {
                System.out.print(num[i]+" ");
                n++;
                if(n%10==0)
                    System.out.println();
            }
    }
    public static void main(String[] args)//主方法
    {
        int i=2,j=1;
        int count;
        int[] numbers = new int[MAX];
        init(numbers);
        while (j<MAX)
        {
            if(numbers[j]!=0)
               while (i<MAX)
                {
                    if(numbers[i]!=0)
                    {
                        if(numbers[i]%numbers[j]==0)
                            numbers[i]=0;//如果不是素数,置零
                    }
                    i++;
                }
            j++;
            i=j+1;
        }
        count=count(numbers);
        printf(numbers);
        System.out.println();
        System.out.println("ok,we found "+count+"primes in "+MAX+" numbers.");
    }
}



相关文章

相关软件