Java 能被1到20的所有数整除的最小正数是多少?
这是我的密码Java 能被1到20的所有数整除的最小正数是多少?,java,Java,这是我的密码 class Euler5 { public static void main(String args[]) { long i=2520l; int flag= 1; if(flag == 1) { search: for(int j=10;j<=20;j++) { long a=i%j; if(a!=0) { i+=20; break search ; } if(j==20) {
class Euler5
{
public static void main(String args[])
{
long i=2520l;
int flag= 1;
if(flag == 1)
{
search:
for(int j=10;j<=20;j++)
{
long a=i%j;
if(a!=0)
{
i+=20;
break search ;
}
if(j==20)
{
flag=0;
}
}
}
System.out.print(i);
}
}
类Euler5
{
公共静态void main(字符串参数[])
{
长i=2520l;
int标志=1;
如果(标志==1)
{
搜索:
对于(int j=10;j将if(flag==1)
替换为while(flag==1)
。否则您将只在11个值上迭代一次。将if(flag==1)
替换为while(flag==1)
。否则您将只在11个值上迭代一次。这是因为:
在第一次迭代之后,您将j
增加1
在第二次迭代中,i%j
是!=0
在if条件下,您将通过20
递增i
,从而导致i=2540
你打破了那里的循环
因此结果是2540
这是因为:
在第一次迭代之后,您将j
增加1
在第二次迭代中,i%j
是!=0
在if条件下,您将通过20
递增i
,从而导致i=2540
你打破了那里的循环
因此结果是2540
这是因为当for循环第二次执行时,j
的值将是11
,这将导致表达式为
长a=2520/11
哪个将a的值设置为1
,而该值不满足您的if条件,并输入您的if条件
if(a!=0)
{
i+=20;
break search ;
}
之后,它将断开for循环并终止执行,始终输出2540。因为当for循环第二次执行时,j
的值将为11
,这将导致表达式为
长a=2520/11
哪个将a的值设置为1
,而该值不满足您的if条件,并输入您的if条件
if(a!=0)
{
i+=20;
break search ;
}
之后,它将中断for循环并终止执行,始终输出2540。您的方法似乎不正确。for必须是1到20,而不是10到20。您应该像Ivaylo Strandjev所说的那样在while循环中运行所有这些。也许一个更简单的解决方案是将2到20个数字除以素数d增加独特因素
e、 g:
2 => 1 * 2
3 => 1 * 3
4 => 1 * 2 * 2
5 => 1 * 5
6 => 1 * 2 * 3
那你就保留一个独一无二的
1 * 2 => keep both
1 * 3 => keep only 3
1 * 2 * 2 => keep only the second 2
1 * 5 => keep only 5
1 * 2 * 3 => keep nothing
total 1 * 2 * 3 * 2 * 5 = 60 is the smallest int divisible by 2,3,4,5 and 6
您将找到17907120作为您的解决方案
我不擅长Java:(你的方法似乎不正确。你的for必须是1到20,而不是10到20。正如Ivaylo Strandjev所说,你应该在while循环中运行所有这些。也许一个更简单的解决方案是将2到20个数字除以素数,然后添加唯一的因子
e、 g:
2 => 1 * 2
3 => 1 * 3
4 => 1 * 2 * 2
5 => 1 * 5
6 => 1 * 2 * 3
那你就保留一个独一无二的
1 * 2 => keep both
1 * 3 => keep only 3
1 * 2 * 2 => keep only the second 2
1 * 5 => keep only 5
1 * 2 * 3 => keep nothing
total 1 * 2 * 3 * 2 * 5 = 60 is the smallest int divisible by 2,3,4,5 and 6
您将找到17907120作为您的解决方案
我不擅长Java:(Define:“not Working”你是什么意思?你有没有异常?你有没有得到错误的结果?哪一个应该是正确的结果?程序的目的是找到最小的no,它可以被1到20之间的所有no整除。2540不是那个no(选中)。所以我发现if块只运行了一次。很好:“不工作”是什么意思?是否出现异常?是否得到错误的结果?哪一个应该是正确的结果?该程序的目的是找到最小的no,它可以被1到20之间的所有no整除。2540不是no(选中)。因此,我发现if块只在我在回答中已经做过的一次时才运行:否则,您将只在11个值上迭代一次。
尝试调试代码或手动迭代,您将理解我的意思。@user2644549 if语句不是我在回答中已经做过的循环:其他e您将只在11个值上迭代一次。
尝试调试代码或手动迭代代码,您将理解我的意思。@user2644549 if语句不是循环,但也应该返回if循环,然后递增值并检查again@user2644549:否。中断
中断<代码>for
循环。if
不是循环语句。但是它也应该返回到if循环,然后增加值并进行检查again@user2644549:否。break
为循环中断。如果
不是循环语句。