Java 从数字中获取最大平方因子
我试图找到一个数的最大平方因子。例如,如果我的号码是15,我需要3和5。如果号码是18,我需要3和6 我几乎完成了我需要的,但我不知道最后一步,这可能是最简单的 这是我的密码:Java 从数字中获取最大平方因子,java,Java,我试图找到一个数的最大平方因子。例如,如果我的号码是15,我需要3和5。如果号码是18,我需要3和6 我几乎完成了我需要的,但我不知道最后一步,这可能是最简单的 这是我的密码: int divisor; int divisor1 = 0; int num = gridArr.length; for(divisor = (int)Math.sqrt(num); divisor>0; divisor--){ if(num%divisor==0)
int divisor;
int divisor1 = 0;
int num = gridArr.length;
for(divisor = (int)Math.sqrt(num); divisor>0; divisor--){
if(num%divisor==0){
divisor1 = num/divisor;
}
}
System.out.println(divisor+" "+divisor1);
在这种情况下,输出为:
0 15
3 5
1 15
如果将System.out.print移到If语句内部,则输出为:
0 15
3 5
1 15
而我只需要35个
我不知道我错在哪里。。。有什么想法吗?好的,我不知道大多数的平方因子是什么,但我假设这意味着你想把数字分成两个尽可能接近相等的因子。您只需要对代码进行一次小的修改:一旦找到一个因子对,只需停止寻找其他因子对即可。要做到这一点,只需打破循环:
for(divisor = (int)Math.sqrt(num); divisor>0; divisor--){
if(num%divisor==0){
divisor1 = num/divisor;
break;
}
}
平方除数是什么意思?3是15的平方因子吗?在if语句中打破for循环是的!就这样。谢谢