用java编写 产生20个1-1000之间的随机正整数,并判断其中素数的个数。 谢谢

给定若干个正整数,请判断素数的个数用java编写~

public class Hello{public static void main(String[] args){int[] arr = {1,2,43,3,5,65,7,56,7,2,4,6};int shu = 0;for(int i = 0; i < arr.length; i++){if(arr[i] % 2 == 0){++shu;}}System.out.println("素数的个数为:" + shu);}}

public class HelloWorld { public static void main(String[] args) { System.out.println("请输入一个正整数n"); Scanner input = new Scanner(System.in); int n = input.nextInt(); for (int i = 2; i <= n; i++) // 1不是素数,所以直接从2开始循环 { int j = 2; while (i % j != 0) { j++; // 测试2至i的数字是否能被i整除,如不能就自加 } if (j == i) //当有被整除的数字时,判断它是不是自身,若是,则说明是素数 { System.out.println(i); // 如果是就打印出数字 } } }}

import java.util.Arrays;
import java.util.Random;

public class RandomPrime {

/**
* @param args
*/
public static void main(String[] args) {
int[] ranNums = new int[20];
Random ran = new Random();
for (int i = 0; i < ranNums.length; i++) {
int num = ran.nextInt(1000) + 1;// ran.nextInt(1000)产生的是0-999所以+1就是1-1000,如果是ran.nextInt(1001)产生的实际是0-1000
boolean flag = false;
for (int m = 0; m < i; m++) {// 还要判断生成的随机数是否与前面的有重复
if (ranNums[m] == num) {
flag = true;
break;
}
}
if (flag) // 如果重复了 循环变量i减去1再继续,即重新生成一遍
i--;
else
ranNums[i] = num;
}
System.out.println("随机生成的随机数是:" + Arrays.toString(ranNums));

int count = 0;
String out = "";
for (int num : ranNums) {
if (isPrime(num)) {
out += num + " ";
count++;
}
}
if (count > 0)
System.out.println("一共有" + out + count + "个素数");
else
System.out.println("没有素数");
}

/**
* 判断是否是素数的方法
*
* @param num
* @return
*/
public static boolean isPrime(int num) {
boolean pri = true;
for (int i = 2; i <= num / 2; i++) {
if (num % i == 0) {
pri = false;
break;
}
}
return pri;

}

}

说一下思路把:
你写一个判断输入的数字是否为素数的函数。返回值设为boolean
再写一个循环从1到该整数n
执行你上面写好的函数
如果返回值是true
就把这个数字
打印出来

public class Test {
public static void main(String[] args) {
Random random = new Random();
for (int i = 0; i < 20; i++) {//循环20次
int num = random.nextInt(1001);//生成随机数
if (isPrime(num)) {//判断 是否质数
System.out.println(num + "是质数");
} else {
System.out.println(num + "不是质数");
}
}
}
/**
* 判断质数方法
* @param num
* @return
*/
public static boolean isPrime(int num) {
boolean prime = true;
int limit = (int) Math.sqrt(num);
for (int i = 2; i <= limit; i++) {
if (num % i == 0) {
prime = false;
break;
}
}
return prime;
}
}

一楼的很好

相关兴趣推荐

IT评价网,数码产品家用电器电子设备等点评来自于网友使用感受交流,不对其内容作任何保证

联系反馈
Copyright© IT评价网