求十个最小连续自然合数。
根据c语言改编一下,其实思路都一样,循环找出符合条件的数字。存放到数组中,最后输出满足条件的就好了。一定要明白判断合数的条件。这里要注意continue的使用。注释我已经说的听明白了,听不懂的大家多多见谅哈哈哈。
ps:我在csdn找不到java版本的,只有c语言版本,我就直接按照原创发布了,刚入门,有违规则的请大佬及时告知我,谢谢了。
public static void main(String[] args) {
int i,j,h;
boolean flag;
int count=0;
int[] a = new int[10];
for(i=1;true;i++)
{flag=true;
for(j=2; flag&&j<i/2; j+=1) //判断能否被从2到整数的一半的某一数所整除
if(0==(i%j)) //若能除开,则是合数
flag=false;
if(flag) //素数
{
count=0;//数组下标
continue;//若是素数,数组将会被新的for循环所找到的数字重新赋值
}
else //是合数
{
a[count]=i;
count++;
}
if(10==count) //已找到连续的十个合数
break; //跳出循环,第一次找到的即为最小的十个连续合数
}
System.out.print("10个连续最小合数分别为:");
for(h= 0; h <10; h++)
System.out.print(a[h]+" ");//存到数组挨个输出
}
}
结果:
10个连续最小合数分别为:114 115 116 117 118 119 120 121 122 123