我有这个问题,如何制作此代码,处理质数项的数量并添加它们,目前,它的作用是求一个上限,然后从中添加所有现有的数,例
x=3.52871693, y=5.65001807
,然后我将总结5
,并得到2 + 3 + 5
,但是我想添加10
质数,例如5
,然后
5
首先,谢谢您:
2, 3, 5, 7, 11 = 28
答案 0 :(得分:0)
使用计数器来计数已经添加的素数,而不是循环li
次。
Scanner sc = new Scanner (System.in);
int li, suma=0;
int cont = 0;
int counter = 0;
System.out.println("Ingrese la longuitud de los numeros primos a sumar");
li= sc.nextInt();
for(int i = 2; counter < li; i++)
{
cont = 0;
for (int j = 1; j <= i; j++)
{
if(i % j == 0)
{
cont++;
}
}
if(cont== 2 )
{
suma= suma + i;
counter++;
}
}
System.out.print(suma + " ");
答案 1 :(得分:0)
我将有一种单独的方法来检查数字是否为质数,并找到所需数的质数之和,如下所示:
public static void main(String[] args) {
Scanner sc = new Scanner (System.in);
int li, suma = 0;
int cont = 0; // track prime count
System.out.println("Ingrese la longuitud de los numeros primos a sumar");
li = sc.nextInt();
int i = 2; // start with 2 since least prime is 2
while (li > cont) {
boolean isPrime = true;
for (int divisor = 2; divisor <= Math.sqrt(i); divisor++) {
if (i % divisor == 0) {
isPrime = false;
break;
}
}
if (isPrime) { // if prime, add to sum and increase count
suma += i;
cont++;
}
i++;
}
System.out.print(suma + " ");
}
答案 2 :(得分:0)
首先,您应该编写一个检查数字是否为素数的方法。
之后,使用循环语句获取第一个count
素数。然后只求和。
希望对您有帮助
public static void main (String args[]) {
int count = 3;
int sum = 0;
int n = 2;
for (int i = 0; i < count; i++) {
if (n == 2) {
sum += n;
n++;
} else {
while (!isPrime(n)) {
n = n + 2;
}
sum += n;
n = n + 2;
}
}
System.out.println(sum);
}
public static boolean isPrime(int i) {
if (i == 2 || i == 3) {
return true;
} else {
if (i % 2 == 0) return false;
for (int j = 3; j <= (i / 2) + 1; j = j + 2) {
if (i % j == 0) return false;
}
return true;
}
}
答案 3 :(得分:0)
您的意思是计算第一个li
素数之和吗?
int count = 0; // add a count to represent the number of prime number
for (int i = 2; i <= 100000000; i++) { // loop to a very large number
for (int j = 1; j <= i; j++) {
if (i % j == 0) {
cont++;
}
}
if (cont == 2) {
suma = suma + i;
count++;
if (count == li) break; // break if the number of prime number is li
}
}