Java 如何将输出素数作为因子而不是所有因子?
我只需要将因子作为素数输出Java 如何将输出素数作为因子而不是所有因子?,java,Java,我只需要将因子作为素数输出 public static void main(String[] args) { Scanner keyboard = new Scanner(System.in); System.out.println("Enter a number:"); int theNum = keyboard.nextInt(); int i; System.out.println("\nThe prime factors of " + the
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter a number:");
int theNum = keyboard.nextInt();
int i;
System.out.println("\nThe prime factors of " + theNum + " are:");
for(i=1; i <= theNum/2; i++)
if(theNum % i == 0)
{
System.out.print(i + " ");
}
}
}
publicstaticvoidmain(字符串[]args){
扫描仪键盘=新扫描仪(System.in);
System.out.println(“输入一个数字:”);
int theNum=keyboard.nextInt();
int i;
System.out.println(“\n”+theNum+的素因子为:”);
对于(i=1;i你基本上只需要检查素数
我复制的一些素数检查函数:
.永远不要使用.nextLine()
,因为它以后很可能会给您带来问题。请始终使用.nextLine()
并将其解析为int
。我是编程新手。您能将该行作为代码输入,以便我知道您的意思吗?@syb0rg您可能需要包括一个原因—(类似于)…例如,如果在同一个扫描仪上使用nextLine
和nextLine
,nextInt
将不包括下一个行尾字符,因此在下一个nextLine
调用中会得到一个空行。@Dukeling我不明白使用nextLine()的原因
,当我可以使用nextLine
解析我需要的所有信息时。@user2230190String nextstring=keyboard.nextLine();
(以单行形式获取数字)int nextInt=Integer.parseInt(nextstring);
(将字符串转换为int)
boolean isPrime(int n) {
//check if n is a multiple of 2
if (n%2==0) return false;
//if not, then just check the odds
for(int i=3;i*i<=n;i+=2) {
if(n%i==0)
return false;
}
return true;
}
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter a number:");
int theNum = keyboard.nextInt();
System.out.println("\nThe prime factors of " + theNum + " are:");
for(int i = 1; i <= theNum / 2; i++)
if (theNum % i == 0 && isPrime(i))
System.out.print(i + " ");
}