如何从 Java 中的 CSV 文件中查找质数?
How to find prime numbers from CSV file in Java?
我需要创建一个程序,从文件中读取任意数量的逗号分隔整数并处理这些数字。
还必须指定每个数字是否为素数;如果数字不是质数,程序将按降序显示其唯一因子。
我无法显示文件中的素数 primeOrNot.csv
到目前为止,这是我的代码,我们将不胜感激:
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class PrimeFactors {
public static boolean checkForPrime(int number) {
boolean isItPrime = true;
if(number <= 1) {
isItPrime = false;
return isItPrime;
} else {
for(int i = 2; i <= number/2; i++ ) {
if ((number % i) == 0) {
isItPrime = false;
break;
}
}
return isItPrime;
}
}
public static void main(String[] args) {
String path = "/Users/benharrington/Desktop/primeOrNot.csv";
String line = "";
try {
BufferedReader br = new BufferedReader(new FileReader(path));
while((line = br.readLine()) != null) {
int i = Integer.parseInt(line);
boolean isItPrime = checkForPrime(i);
System.out.println(i);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用此代码,它按要求工作:
public class PrimeFactors {
public static void findFactor(int n) {
System.out.print("Factors for the number " + n + " is : ");
for (int i = n; i >= 1; i--) {
if (n % i == 0)
System.out.print(i + " ");
}
}
public static boolean checkForPrime(int number) {
boolean isItPrime = true;
if (number <= 1) {
isItPrime = false;
return isItPrime;
} else {
for (int i = 2; i <= number / 2; i++) {
if ((number % i) == 0) {
isItPrime = false;
break;
}
}
return isItPrime;
}
}
public static void main(String[] args) {
String path = "/Users/benharrington/Desktop/primeOrNot.csv";
String line = "";
try {
BufferedReader br = new BufferedReader(new FileReader(path));
ArrayList<Integer> list = new ArrayList<Integer>();
while ((line = br.readLine()) != null) {
String[] values = line.split(",");
for (String str : values) {
int i = Integer.parseInt(str);
boolean isItPrime = checkForPrime(i);
if (isItPrime)
System.out.println(i + " is Prime");
else
System.out.println(i + " is not Prime");
if (isItPrime == false) {
list.add(i);
}
}
for (int k : list) {
System.out.println(" ");
findFactor(k);
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
我需要创建一个程序,从文件中读取任意数量的逗号分隔整数并处理这些数字。
还必须指定每个数字是否为素数;如果数字不是质数,程序将按降序显示其唯一因子。
我无法显示文件中的素数 primeOrNot.csv
到目前为止,这是我的代码,我们将不胜感激:
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class PrimeFactors {
public static boolean checkForPrime(int number) {
boolean isItPrime = true;
if(number <= 1) {
isItPrime = false;
return isItPrime;
} else {
for(int i = 2; i <= number/2; i++ ) {
if ((number % i) == 0) {
isItPrime = false;
break;
}
}
return isItPrime;
}
}
public static void main(String[] args) {
String path = "/Users/benharrington/Desktop/primeOrNot.csv";
String line = "";
try {
BufferedReader br = new BufferedReader(new FileReader(path));
while((line = br.readLine()) != null) {
int i = Integer.parseInt(line);
boolean isItPrime = checkForPrime(i);
System.out.println(i);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用此代码,它按要求工作:
public class PrimeFactors {
public static void findFactor(int n) {
System.out.print("Factors for the number " + n + " is : ");
for (int i = n; i >= 1; i--) {
if (n % i == 0)
System.out.print(i + " ");
}
}
public static boolean checkForPrime(int number) {
boolean isItPrime = true;
if (number <= 1) {
isItPrime = false;
return isItPrime;
} else {
for (int i = 2; i <= number / 2; i++) {
if ((number % i) == 0) {
isItPrime = false;
break;
}
}
return isItPrime;
}
}
public static void main(String[] args) {
String path = "/Users/benharrington/Desktop/primeOrNot.csv";
String line = "";
try {
BufferedReader br = new BufferedReader(new FileReader(path));
ArrayList<Integer> list = new ArrayList<Integer>();
while ((line = br.readLine()) != null) {
String[] values = line.split(",");
for (String str : values) {
int i = Integer.parseInt(str);
boolean isItPrime = checkForPrime(i);
if (isItPrime)
System.out.println(i + " is Prime");
else
System.out.println(i + " is not Prime");
if (isItPrime == false) {
list.add(i);
}
}
for (int k : list) {
System.out.println(" ");
findFactor(k);
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}