本文主要是介绍【Java实战例题】还躺尸呢?还不一起来学一学?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
【埃氏筛法求素数】简单易懂!!!
用“埃氏筛法”求2~100以内的素数。2~100以内的数,先去掉2的倍数,再去掉3的倍数,再去掉5的倍数,……依此类推,最后剩下的就是素数。
之前自己做的时候方向错了,导致花了挺久总是出bug,痛定思痛决定重新换个思路!
我的思路是构造一个static类方法,即实现一个数组A,对数组中值***B的倍数***的剔除!
然后依题意就是调用三次类方法就做出来了!!
欢迎关注和交流!
随手点赞是种美德!
关注我,一起学习!!
以下是源代码:
package Program_1;
public class Week3 {public static void main(String agrs[]){int i=0;int Arrys2[] = new int[100];for(int k=0;k<Arrys2.length;k++)Arrys2[k]=k+1;//给数组赋值System.out.println("去掉2的倍数后:");MoveNumbers(Arrys2,2);while(i<Arrys2.length){if(Arrys2[i]!=0)System.out.print(","+Arrys2[i]);i++;}System.out.println("-");System.out.println("去掉3的倍数后:");MoveNumbers(Arrys2,3);i=0;//重新遍历数组while(i<Arrys2.length){if(Arrys2[i]!=0)System.out.print(","+Arrys2[i]);i++;}System.out.println("-");i=0;System.out.println("去掉5的倍数后:");MoveNumbers(Arrys2,5);while(i<Arrys2.length){if(Arrys2[i]!=0)System.out.print("," + Arrys2[i]);i++;}}
public static void MoveNumbers(int agrs[],int x)//构建函数把数组中x的倍数赋值为0
{for (int i=0;i<agrs.length;i++)if(agrs[i]%x==0&&agrs[i]>x)agrs[i]=0;
}
}
这篇关于【Java实战例题】还躺尸呢?还不一起来学一学?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!