我被指派做以下工作
到目前为止,我不确定是否正在做正确的事情,但我有一些代码,我开始在下面。。。
import java.util.Scanner;
public static void main(String[] args) {
// TODO Auto-generated method stub
primenum();
}
public static void primenum() {
int max = 20000;
System.out.println("Generate Prime num" + max);
for (int i = 10000; i < max; i++) {
boolean isPrimeNumber = true;
for (int j = 2; j < i; j++) {
if (i % j == 0) {
isPrimeNumber = false;
}
}
// print the number if prime
if (isPrimeNumber) {
System.out.println(i + " ");
}
}
}
public static void ID() {
String[] emp = new String[10];
emp[0] = "John";
emp[1] = "Mary";
emp[2] = "James";
emp[3] = "chris";
emp[4] = "charles";
}
我刚刚创建了一个数组,其中包含一些名称。 但我希望得到的主要目标是将生成的下一个素数存储在与名称相关联的每个emp[]
中。 所以对于。 emp[0]
是john,我希望他能够接收primenum()
方法的下一个素数。 我不确定如何做到这一点,并将爱所有的帮助被任命。
欢迎来到SO。
现在关于你的问题,我不太确定你想要什么,但我猜你想以某种方式将一个素数与你的员工姓名联系起来。 如果是这样的话,下面可能会帮到你。
创建一个自定义对象,该对象负责employee对象与素数(ID)之间的关系,如下所示:
public class EmployeeNameAndId {
private Employee employee;
private Integer id;
// constructors, getters, setters here
}
现在需要在主类中使用这个对象,如下所示:
public class MainClass {
public static void main(String[] args) {
List<EmployeeNameAndId> l = new ArrayList<>();
l.add(new EmployeeNameAndId("John", generatePrimeId());
l.add(new EmployeeNameAndId("Mary", generatePrimeId());
l.add(new EmployeeNameAndId("James", generatePrimeId());
l.add(new EmployeeNameAndId("Chris", generatePrimeId());
}
}
我希望这能帮助你,但如果这不是你想要的,让我知道,我会尽力帮助你。
祝你好运,学习愉快!
使用此解决方案:
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
public class PrimeNumber {
public static void main(String[] args) {
Map<String,Integer> map=new HashMap<String,Integer>();
map.put("John", nextPrime(1));
map.put("Mary", nextPrime(map.get("John")));
map.put("James", nextPrime(map.get("Mary")));
map.put("chris", nextPrime(map.get("James")));
map.put("charles", nextPrime(map.get("chris")));
for(Entry<String, Integer> e:map.entrySet()) {
System.out.println(e.getKey()+": "+e.getValue());
}
}
public static int nextPrime(int input){
int counter;
input++;
while(true){
int l = (int) Math.sqrt(input);
counter = 0;
for(int i = 2; i <= l; i ++){
if(input % i == 0) counter++;
}
if(counter == 0)
return input;
else{
input++;
continue;
}
}
}
}