Java问题:依次输出200~300之间的所有素数
答案:6 悬赏:0 手机版
解决时间 2021-03-28 16:01
- 提问者网友:战皆罪
- 2021-03-28 04:15
Java问题:依次输出200~300之间的所有素数
最佳答案
- 五星知识达人网友:西岸风
- 2021-03-28 05:47
质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。换句话说,只有两个正因数(1和自己)的自然数即为素数。比1大但不是素数的数称为合数。1和0既非素数也非合数。素数在数论中有着很重要的地位。
知道了素数的概念这个程序就很简单了吧!
public class PrimeNumber2 {
public static void main(String[] args) {
// TODO 自动生成方法存根
System.out.println("**200~300之间的素数**"); 打印字幕
int i,j;
for(i=200;i<=300;i+=1) 设置所求素数的范围
{
for(j=2;j<=i-1;j++) 下面就是验证是否是素数了
{
if(i%j==0)
break; 不是退出,进行下个数的循环
}
if(j>i-1)
{
System.out.print(" "+i); 是就输出
}
}
}
因为你内层的循环是J++,也就是说如果是素数,你的j最后的结果是i,如果不是,j肯定小于i,明白了没,这句话才是判断的依据
知道了素数的概念这个程序就很简单了吧!
public class PrimeNumber2 {
public static void main(String[] args) {
// TODO 自动生成方法存根
System.out.println("**200~300之间的素数**"); 打印字幕
int i,j;
for(i=200;i<=300;i+=1) 设置所求素数的范围
{
for(j=2;j<=i-1;j++) 下面就是验证是否是素数了
{
if(i%j==0)
break; 不是退出,进行下个数的循环
}
if(j>i-1)
{
System.out.print(" "+i); 是就输出
}
}
}
因为你内层的循环是J++,也就是说如果是素数,你的j最后的结果是i,如果不是,j肯定小于i,明白了没,这句话才是判断的依据
全部回答
- 1楼网友:未来江山和你
- 2021-03-28 09:56
外层循环遍历,内存循环判断,就这么简单
- 2楼网友:时间的尘埃
- 2021-03-28 08:20
程序这样你应该更能理解一点
public class PrimeNumber2 {
public static void main(String[] args) {
// TODO 自动生成方法存根
System.out.println("**200~300之间的素数**");
int i, j;
boolean isSusu;
for (i = 200; i <= 300; i += 1) {
isSusu = true;
for (j = 2; j <= i - 1; j++) {
if (i % j == 0){
isSusu = false;
break;
}
}
if(isSusu){
System.out.print(" " + i);
}
}
}
}
public class PrimeNumber2 {
public static void main(String[] args) {
// TODO 自动生成方法存根
System.out.println("**200~300之间的素数**");
int i, j;
boolean isSusu;
for (i = 200; i <= 300; i += 1) {
isSusu = true;
for (j = 2; j <= i - 1; j++) {
if (i % j == 0){
isSusu = false;
break;
}
}
if(isSusu){
System.out.print(" " + i);
}
}
}
}
- 3楼网友:醉吻情书
- 2021-03-28 07:47
素数是只能被1和这个数本身整除的
首先外层循环控制200-300的数字
然后内层循环判断是否满足条件 满足if条件就跳出本次循环 继续外层循环
举个例子
程序初值 i=200 内层循环j=2 if条件200%2==0了 就跳出内层循环 外层循环i+=1 i=201 继续内层循环 j从2开始循环
如果遇到素数 那么内层循环j++ 直到跳出内层循环 此时j==i 然后if语句 输出素数 在继续外层循环i++
首先外层循环控制200-300的数字
然后内层循环判断是否满足条件 满足if条件就跳出本次循环 继续外层循环
举个例子
程序初值 i=200 内层循环j=2 if条件200%2==0了 就跳出内层循环 外层循环i+=1 i=201 继续内层循环 j从2开始循环
如果遇到素数 那么内层循环j++ 直到跳出内层循环 此时j==i 然后if语句 输出素数 在继续外层循环i++
- 4楼网友:酒醒三更
- 2021-03-28 07:29
对于每一个待检查的数i(外循环),查看2~i-1当中有没有它的约数(内循环),如果没有,那就是素数。输出
判断j>i-1 意思就是,如果成立,说明前面的j的循环没有被break,即从2~i-1都不是i的约数,这样一来i就是素数,因此输出这个。反之,如果j<=i-1,说明j没有循环到终点就break,意味着2~i-1中至少有一个是i的约数,那么i就不是素数了。
希望我讲得足够让你明白
判断j>i-1 意思就是,如果成立,说明前面的j的循环没有被break,即从2~i-1都不是i的约数,这样一来i就是素数,因此输出这个。反之,如果j<=i-1,说明j没有循环到终点就break,意味着2~i-1中至少有一个是i的约数,那么i就不是素数了。
希望我讲得足够让你明白
- 5楼网友:猎心人
- 2021-03-28 06:18
可以直观点,把数字带进去运行...素数的理解是除1和本身外,没法被其他自然数整除的数
public class PrimeNumber2 {
public static void main(String[] args) {
// TODO 自动生成方法存根
System.out.println("**200~300之间的素数**");
int i,j;
for(i=200;i<=300;i+=1)
{
for(j=2;j<=i-1;j++)
{
if(i%j==0)//判断是否有除的尽得数字(200对2求余等于0表示200有除的尽的数,故不是素数)
break;
}
if(j>i-1)//应该可以写为j==i吧,表示他本身咯,如果只有j(即i)外都不能整除,那么这个数就是素数。
{
System.out.print(" "+i);
}
}
}
}
public class PrimeNumber2 {
public static void main(String[] args) {
// TODO 自动生成方法存根
System.out.println("**200~300之间的素数**");
int i,j;
for(i=200;i<=300;i+=1)
{
for(j=2;j<=i-1;j++)
{
if(i%j==0)//判断是否有除的尽得数字(200对2求余等于0表示200有除的尽的数,故不是素数)
break;
}
if(j>i-1)//应该可以写为j==i吧,表示他本身咯,如果只有j(即i)外都不能整除,那么这个数就是素数。
{
System.out.print(" "+i);
}
}
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯