1.生成200个10 ~ 1000之间的随机数,将其中的素数找出来,进行从小到大排序,输出在控制台中。(在eclipse开发平台中实现)
设计思路:首先要利用Random类生成符合条件的随机数存在数组中。
public static void randoms(int[] nums, int n) {
Random random = new Random();
for (int i = 0; i < n; i++) {//n表示生成随机数的个数
nums[i] = random.nextInt(1000);//生成0到1000的随机数
while (nums[i] <= 10) {//如果生成的随机数小于等于10,重新生成,知道随机数大于10
nums[i] = random.nextInt(1000);
}
}
}
然后找出其中的素数,并进行从小到大的排序输出,为了降低难度,以最简单的冒泡排序为例。
//打印数组的值
public static void printArray(int []nums) {
// for (int i = 0; i < nums.length; i++) {
// System.out.print(nums[i] + " ");
// }
for (int i : nums) {
System.out.print(i + " ");
}
System.out.println();
}
//冒泡排序
public static void bubbleSort(int []nums) {
for (int i = 0; i < nums.length - 1; i++) {
for (int j = 0; j < nums.length - i - 1; j++) {
if (nums[j] < nums[j + 1]) {
int temp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = temp;
}
}
}
}
//找出数组中的素数,并调用上述冒泡算法排序
public static void prime(int[] nums) {
int count = 0;
for (int i = 0; i < nums.length; i++) {
boolean isPrime = true;//默认是素数
for (int j = 2; j < nums[i]; j++) {
if (nums[i] % j == 0) {
isPrime = false;
break;//整除表示不是素数,直接break判断下一个数
}
}
//如果是素数将其保存起来
if (isPrime == true) {
nums[count++] = nums[i];
}
}
int[] nums1 = new int[count];
System.out.println("---------------------------");
System.out.println("一共有" + count + "个素数");
for (int i = 0; i < count; i++) {
nums1[i] = nums[i];
}
System.out.println("排序前:");
printArray(nums1);
System.out.println("---------------------------");
bubbleSort(nums1);
System.out.println("排序后:");
printArray(nums1);
}
最后就是设计主函数调用这些方法。
public static void main(String[] args) {
int[] nums = new int[200];
System.out.println("生成的200随机数:");
randoms(nums, 200);
printArray(nums);
prime(nums);
}