java代码实现 小红有n个数小红希望质数个数的比例不低于40现在小红可以添加若干个整数请问小红最少需要添加多少个整数才能满足要求 质数是只能被1和自身整除的正教数1不是质数。 输入描述 一行一个整数n表示小红的数的个数 接下来一行n个整数表示小红的数。 输出描述 输出一个整数表示小红最少需要添加的整数个数。 示例1 输入 4 1 2 4 6 输出 1 只有2是质数增加一个3即可
可以使用一个函数来判断一个数是否为质数,然后遍历小红的数,统计质数的个数。如果质数的个数低于40%(即小于n * 0.4),则需要继续添加整数,直到满足要求。
以下是Java代码实现:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[] nums = new int[n];
for (int i = 0; i < n; i++) {
nums[i] = scanner.nextInt();
}
int count = 0;
for (int num : nums) {
if (isPrime(num)) {
count++;
}
}
int targetCount = (int) Math.ceil(n * 0.4); // 目标质数个数
int addCount = 0; // 需要添加的整数个数
while (count < targetCount) {
addCount++;
targetCount++;
}
System.out.println(addCount);
}
// 判断一个数是否为质数
public static boolean isPrime(int num) {
if (num < 2) {
return false;
}
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
}
在这个例子中,输入为4和1 2 4 6,输出为1。只有2是质数,需要添加一个质数3才能满足要求。
原文地址: http://www.cveoy.top/t/topic/i7vl 著作权归作者所有。请勿转载和采集!