悬赏100。。跪求Java 小编程。求2~n之间所有的素数,n由键盘输入。 不用自带的函数,需自己

悬赏100。。跪求Java 小编程。求2~n之间所有的素数,n由键盘输入。
不用自带的函数,需自己编写算法

用Java8的stream的方式来编写

public static void main(String args[]){
    Scanner scanner = new Scanner(System.in);
    System.out.println("请输入一个大于2的正整数");
    if (scanner.hasNext())
    {
        IntStream.range(2,scanner.nextInt()+1)
                    .filter(outerInt-> !IntStream.range(2,outerInt)
                    .anyMatch(innerInt->outerInt%innerInt==0))
                    .forEach(System.out::println);
    }
}

其中IntStream.range(a,b)表示取a到b-1之间的数列

filter是过滤的意思

里面的算法就是循环a到b-1之间的数列,取每个数字做以下过滤

每个数字去比较是否能和比自己小的任意数字整除(除本身外),只要有一个能被整除,那就不是素数,过滤掉

最后把剩下过滤后的数列打印出来,效果如下,求20以内的素数

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-26
import java.util.Scanner;

public class PrimeDemo {
public static void main(String[] args) {
System.out.println("请输入数字:<----程序将输出2~该数之间的素数--->");
Scanner input = new Scanner(System.in);//得到一个控制台输入的扫描器
int n = input.nextInt();//得到输入的数字
input.close();//用完扫描器后,进行关闭

int k = 0;//k用于保存素数的个数
for (int i = 2; i <= n; i++) {
if (isPrime(i)) {//调用方法判断是否是素数
System.out.print(i + "\t");
k++;
if (k % 10 == 0) {//当素数的个数有10个时候,进行换行
System.out.println();//换行
}
}
}
System.out.println("\n2到"+n+"一共"+k+"个素数");
}

private static boolean isPrime(int n) {
// Math.sqrt(n)表示对数字进行开方运算,这样可以提高效率,较少for循环的次数
for (int i = 2; i <= Math.sqrt(n); i++) {
if (n % i == 0) {// 如果找到能整除的数字
return false;// 就返回不是素数
}
}
return true;//如果循环没有发现能被整除,那么就返回是素数
}
}

输出

请输入数字:<----程序将输出2~该数之间的素数--->
100
2 3 5 7 11 13 17 19 23 29
31 37 41 43 47 53 59 61 67 71
73 79 83 89 97
2到100一共25个素数

本回答被提问者采纳
第2个回答  2015-11-09
int n = 123;
System.out.println("输入: " + n);
outer: for (int i = 2; i < n; i++) {
for (int j = 2; j < i; j++) {
if (i % j == 0) {
continue outer;
}
}
System.out.println(" " + i);
}

输入你自己弄吧!
第3个回答  2015-11-09
class Sushu 

public static void main(String args[]) 

Scanner sc=new Scanner(System.in);
System.out.println("请输入一个整数数");
int n=sc.nextInt();

int  j; 
for (int i = 1; i <= n; i++) 

for (j = 2; j < i; j++) 

if (i % j== 0) break; 
if(j<i)
continue;

else

System.out.print(i); 



}

第4个回答  2015-11-09
import java.util.Scanner;

public class Test1 {
public static void main(String[] args) {
// TODO code application logic here
boolean f;
int n = 0;
Scanner in = new Scanner(System.in);
System.out.println("输入:");
n = in.nextInt();
for(int i = 2; i <=n; i++){
f = true;
for(int j = 2; j < i; j++){
if(i % j == 0){
f = false;
break;
}
}
if(f){
System.out.print(i + " ");
}
}
}
}

编写java程序找出2-100之间的所有素数 求大神
for(int x=2;x<100;x++){ \/\/标志是否为素数,默认是true boolean flag=true;\/\/循环x除以(x\/2)的数,能整除则不是是素数(不包含2)for(int y=2;y<x\/2;y++){ if(x%y==0){ \/\/能整除,则把标志设置为false,不是素数 flag=false;break;} } if(flag){ \/\/flag还是true,则是素数...

求JAVA Application 程序编写输出2-100之间的所有素数
\/ public static void main(String[] args) { int i,j;for(i=1;i<=100;i++){ for(j=2;j

Java求100以内的质数的小代码!
1、设计实现:通过for循环输出,使用break跳出。(1)需求:输出1~100的所有素数。(2)素数:--判断条件1:只能被1和本身整除的称为素数。--判断条件2:在区间(1,x\/2)中找不到能整除素数x的整数。--判断条件3:在区间(1,sqrt(x))中找不到能整除素数x的整数。(3)完整代码如下:2、i...

求大神来一个JAVA程序,要求键盘输入两个整数,并输出这两个整数间的所 ...
import java.util.Scanner;public class Test { public static void main(String[] args) { Scanner sole = new Scanner(System.in);int n1=0;int n2 =0;System.out.println("请输入第1个整数.");n1 = sole.nextInt();System.out.println("请输入第2个整数.");n2 = sole.nextInt()...

JAVA编写:分别运用三种循环语句编程实现找出1~100中所有质数
public class c3_18 \/\/求1--100间的素数 \/\/break语句 { public static void main(String[] args){ System.out.println(" 1--100之间的质数分别是: ");int n=0,m,j,i,s = 0;for(i=3;i<=100;i+=2){ m=(int)Math.sqrt((double)i);for(j=2;j<=m;j++){if((i%j)==...

利用Java编写应用程序求100以内的全部素数
public static void main(String[] args) { int i,n,k=0;for (n = 3; n<=100; n++) { \/\/3~100的所有数 i=2;while (i<n) { if (n%i==0) break; \/\/若能整除说明n不是素数,跳出当前循环 i++;} if (i==n) { \/\/如果i==n则说明n不能被2~n-1整除,是素数...

用java写一个程序,判断输出1~100之内的素数?
素数是指只能被1和自身整除的数,所以先定义一个函数判断一个数是否是素数,接着从1到100for循环判断。package baidu;public class Test {public static boolean fun(int n){if(n<2) return false;for(int i=2;i<n-1;i++)if(n%i==0) return false;return true;} public static void ...

编写Java程序,输出100到200之间的所有素数
public static void main(String[] args) { int primeNumber = 0; for(int i = 100 ;i <= 200;i++){ boolean isPrime=true;\/\/是否是质数的标志 for(int j=i-1;j>1;j--){\/\/n除以每个比n小比1大的自然数 if(i%j==0){\/\/如果有能被整除的,则不是质数 isPr...

java编程 打印2到10000的所有素数,每行显示8个素数。
package com.Practices;\/*** * 1.判断一个数是否是素数 * 2.输入两个数,得到这两个数之间的所有素数,并打印出来 *\/import java.util.ArrayList;import java.util.Scanner;public class PrimeNum { public static void main(String[] args) { \/\/ TODO Auto-generated method stub Scan...

...循环for输出2~500之间的所有素数,每个素数之间用跳格键分开 急...
python算法题:输出2~100之间的素数 i=2 j=2 除了1和其本身,其他都不能整除 for j in range(2,101):for i in range(2,j):if j%i==0:break;elif (j-1)==i:print ('{}是素数'.format(j))例如:k = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31]for i in range(...

相似回答