一生一世陪你


私信TA

用户名:wodeshijie

访问量:23434

签 名:

我要好好地写代码..........

等  级
排  名 428
经  验 4926
参赛次数 1
文章发表 19
年  龄 10
在职情况 学生
学  校 河南农业大学
专  业

  自我简介:

我就是我,可能不是太好,但是我就是我,谁也不能取代........

参考代码:

package itcast1;
import java.util.Scanner;
public class L1084 {
public static void main(String[] args) {
	Scanner m=new Scanner(System.in);
	int n=m.nextInt();
	for(int i=2;i<=n;i++)
	{
		int j=0;
		for(j=2;j<=Math.sqrt(i);j++)
			if(i%j==0)
				break;
			 if(j>Math.sqrt(i))
				System.out.println(i);
		
	}
}
}
大致代码就是这个样子的,但是我在这里要讲的有两点,第一点为什么要定义一个int j=0;难道不可以直接
在下一个for循环中定义吗?为什么呢?这就牵扯第二个问题了,第二个问题是 if(j>Math.sqrt(i))是在第
二个for循环中还是第一个for循环中,下面我来一一解答,如果这两个问题都弄懂了,那么这个题基本就可
以写出来了,第一个问题因为下面要用到j,如果不在第一个for循环中定义一个int j=0;下面的 
if(j>Math.sqrt(i))就无法使用,第二个问题解答是这个if语句必须要放在外面,因为只有上面那个if语句
全部执行完了之后你才可以判断是否符合题意,最后判断完之后j应该是大于Math.sqrt(i),所以才能判定
该数是素数.....


 

0.0分

0 人评分

  评论区

  • «
  • »