Java 素数识别与平方
我被要求为以下问题编写代码 在给定的数字数组中找到素数并打印总和 找到的质数的平方 这是我的密码:Java 素数识别与平方,java,primes,Java,Primes,我被要求为以下问题编写代码 在给定的数字数组中找到素数并打印总和 找到的质数的平方 这是我的密码: import java.util.*; public class primenumber2 { public static void main(String[] args) { int[] int1 = {2,3,4,6,11,13,17,99}; int square=0; int result=0; bo
import java.util.*;
public class primenumber2
{
public static void main(String[] args)
{
int[] int1 = {2,3,4,6,11,13,17,99};
int square=0;
int result=0;
boolean isprime = true;
for(int i=0;i<int1.length;i++)
{
int temp=int1[i];
for(int j=1;j<i;j++)
{
if(temp%j==0)
{
isprime = false;
}
else
isprime = true;
}
if(isprime)
{
System.out.println(temp);
square = temp*temp;
result = result+square;
}
}
System.out.println(result);
}
}
import java.util.*;
公共类素数2
{
公共静态void main(字符串[]args)
{
int[]int1={2,3,4,6,11,13,17,99};
整数平方=0;
int结果=0;
布尔值isprime=true;
对于(int i=0;i2个问题
- 从
1
- 您的检查直到
j您可能不想在for j
循环中将isprime
设置为true。您所说的是“如果j
不是temp
的一个因子,那么temp
就是prime”.这是错误的逻辑。如果你检查的数字没有一个是因子,而不是你检查的最后一个数字不是因子,那就是素数。在toCheck/2
之前进行检查难道还不够吗?@Fildor它实际上是toCheck
的平方根,向下舍入。这个答案怎么值得向下投票?复仇向下投票…得到了吗ta喜欢它。真的很成熟。对一个拥有16k+代表的家伙这样做……是的……有时会发生,但我不在乎,我只是想让Zia纠正错误,给OP一个丑陋但正确的解决方案。。。。
for(int j=1;j<i;j++)
// ↑ why limit this loop at index of the outer loop?
// ↑ start at 1 (WRONG!)
for(int j=2;j<temp;j++)
private static boolean isPrime(int toCheck) {
for (int i = 2; i < toCheck; i++) {
// stop iterating if you know number is even
if (toCheck % i == 0) return false;
}
return true;
}
public static void main(String[] args) throws Exception {
int[] int1 = { 2, 3, 4, 6, 11, 13, 17, 99 };
int square = 0;
int result = 0;
for (int i = 0; i < int1.length; i++) {
if (isPrime(int1[i])) {
System.out.println(int1[i]);
square = int1[i] * int1[i];
result += square;
}
}
System.out.println(result);
}
2
3
11
13
17
592