给定一个数 n,return true 是 n 的所有因子都是质数。请注意,1 和数字本身不被视为因素
Given a number n, return true is all the factors of n are prime numbers. Note that 1 and the number itself are not considered as factors
public class AllFactorsArePrime {
public static void main(String[] args) {
AllFactorsArePrime obj = new AllFactorsArePrime();
boolean result = obj.areAllFactorsPrime(8);
System.out.println(result);
}
public boolean areAllFactorsPrime(int n) {
int j=0;
double k=n;
while(n%2==0){
n=n/2;
j=2;
}
for(int i=3; i<=n;i=i+2){
while(n%i==0){
n=n/i;
j=i;
}
}
if(j==0 ){
return 1;
}
return j;
}
以上代码return素因数,但return应该是真的还是false.any建议?
示例输入#1
areAllFactorsPrime(22)
示例输出 #1
true
示例输入#2
areAllFactorsPrime(25)
示例输出 #2
true
示例输入#3
areAllFactorsPrime(32)
示例输出 #3
false
我认为这就是您要实现的目标!
import java.util.*;
import java.lang.*;
import java.io.*;
public class AllFactorsArePrime {
public static void main(String[] args) {
AllFactorsArePrime obj = new AllFactorsArePrime();
boolean result = obj.areAllFactorsPrime(32);
System.out.println(result);
}
public boolean areAllFactorsPrime(int n) {
int count=0;
int j=0;
double k=n;
while(n%2==0){
n=n/2;
j=2;
count++;
}
for(int i=3; i<=n;i=i+2){
while(n%i==0){
n=n/i;
j=i;
count++;
}
}
if(count>=3)
{
return false;
}
else
return true;
}
}
如果除 1 之外有 2 个以上的质因数,则逻辑非常简单,这意味着您至少有 1 个复合因数,即 prime1*prime2。
public class AllFactorsArePrime {
public static void main(String[] args) {
AllFactorsArePrime obj = new AllFactorsArePrime();
boolean result = obj.areAllFactorsPrime(8);
System.out.println(result);
}
public boolean areAllFactorsPrime(int n) {
int j=0;
double k=n;
while(n%2==0){
n=n/2;
j=2;
}
for(int i=3; i<=n;i=i+2){
while(n%i==0){
n=n/i;
j=i;
}
}
if(j==0 ){
return 1;
}
return j;
}
以上代码return素因数,但return应该是真的还是false.any建议? 示例输入#1
areAllFactorsPrime(22)
示例输出 #1
true
示例输入#2
areAllFactorsPrime(25)
示例输出 #2
true
示例输入#3
areAllFactorsPrime(32)
示例输出 #3
false
我认为这就是您要实现的目标!
import java.util.*;
import java.lang.*;
import java.io.*;
public class AllFactorsArePrime {
public static void main(String[] args) {
AllFactorsArePrime obj = new AllFactorsArePrime();
boolean result = obj.areAllFactorsPrime(32);
System.out.println(result);
}
public boolean areAllFactorsPrime(int n) {
int count=0;
int j=0;
double k=n;
while(n%2==0){
n=n/2;
j=2;
count++;
}
for(int i=3; i<=n;i=i+2){
while(n%i==0){
n=n/i;
j=i;
count++;
}
}
if(count>=3)
{
return false;
}
else
return true;
}
}
如果除 1 之外有 2 个以上的质因数,则逻辑非常简单,这意味着您至少有 1 个复合因数,即 prime1*prime2。