日期:2014-05-20  浏览次数:20628 次

问2道FOR的问题,
1:产生25个INT的随机数,对每个随机值用if-else比较紧随它而产生随机的大小,,,就是说用新生成的和前一个比较。

2:是关于素数的,
                     for(int i = 1; i < 100; i++ ) {
int factors = 0;
for(int j = 1; j < (i + 2)/2; j++ ) {
if((i % j) == 0) factors++; 
}
if(factors < 2) System.out.println(i + " is prime");
 j < (i + 2)/2,,,这是什么意思。
factors 的作用是什么。

------解决方案--------------------
factors是i除以j能除得尽,factors就计数+1。factors是个计数器而已。
如果是素数,i应该只能被1和其本身除得尽的,这里循环j只循环到i的一半,所以判断的时候是<2,而不是<=2
------解决方案--------------------
1/第一个有什么疑问吗?我不明白用意,书面理解的话,用一个数组保存你产生的那些值,然后做判断。
2/j < (i + 2)/2 首先你要对素数的概念要理解:素数指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数(截至百度知道);
这个表达式是指j就循环到i的一半加1,因为大于i的一半的数肯定不能整除了。就没必要判断。