导航:首页 > 编程语言 > java素数2

java素数2

发布时间:2022-06-08 16:41:40

java里怎么实现素数

importjava.util.Scanner;

//质数又称素数,是指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数
publicclassPrimeNumber{

publicstaticvoidmain(String[]args){

Scannerscan=newScanner(System.in);//扫描器,接收控制台输入信息

System.out.print("请输入一个整数:");

try{
intnum=scan.nextInt();//取出控制台输入的信息
if(isPrime(num)){//调用isPrime()方法

System.out.println(num+"是素数!");//若isPrime()方法返回true,输出是素数

}else{

System.out.println(num+"不是素数!");//若isPrime()方法返回false,输出不是素数
}
}catch(Exceptione){
System.out.println("请输入整数");//捕捉异常,若输入的不是整数,输出异常
}
}

/**
*<pre>
*用于判断一个数是否为素数,若为素数,返回true,否则返回false
*</pre>
*
*@parama
*输入的值
*@returntrue、false
*/
publicstaticbooleanisPrime(inta){

booleanflag=true;

if(a<2){//素数不小于2
returnfalse;
}else{

for(inti=2;i<=Math.sqrt(a);i++){

if(a%i==0){//若能被整除,则说明不是素数,返回false

flag=false;
break;//跳出循环
}
}
}
returnflag;
}
}

❷ JAVA求素数:for(j=2;j<=i/2;j++):是什么意思为什么i/2,为什么没有“{”

如上所述,不加{}的for的循环体只有后面紧接的一句,
为什么是i/2,就是i的一半(呵呵貌似白说了哈),当i的一半赋给一个整型的数时,或i/2被当成一个整型的数使用时,它一半就是去掉小数后的数(向下取整,比如5的一半,就当是2)
因此,算法大致的意思是这样,一个3到100的数,如果这个数,都不能被2到这个数的一半的数整除的话,就是素数
------------以下是对补充问题的回答------------------------
第一个if,当i能被j(一个2到i一半的整数)整除的时候,跳出for(j=2;j<=i/2;j++){}循环体,当然for(j=2;j<=i/2;j++){}循环体什么也没做,就一个劲的判断,当判断到有的场合时跳出,没有的话,j递增,然后继续循环
直到循环结束都没出现当i能被j(一个2到i一半的整数)整除的场合时,也跳出循环体,而j的值在结束时加1,刚好大过或等于(i的一半加1)。
而i在以上的两种情况跳出的场合,性质是不一样的,第一种是非素数,第二种是素数,所以进行
第二个if,假如for(j=2;j<=i/2;j++){}循环体是在循环还没结束时跳出的,值必定小于(i的一半加1),就什么也不做,反之,是在循环结束时跳出的,那就是素数,就进行打印,
第三个if,没用{}那么只影响下一句,效果就是每6个素数就分别多用一行空行格开,纯粹格式不用在意
当然,如楼上,所说可以用i的平方根代替,可以减少检验次数
可能没说清楚,可能啰嗦了点,呵呵,希望对你有帮助!
-------------------------------对补充的回答
这两天没上网XD,是的,没有自增

❸ 用java判断素数

import java.util.Scanner;

public class Test40013 {
public static void main(String args[]) {
int ri, repeat;
int i, m, n;
boolean flag;
Scanner in = new Scanner(System.in);
repeat = in.nextInt();
for (ri = 1; ri <= repeat; ri++) {
m = in.nextInt();
/*--------------------*/
flag = true;
if(m == 1){//1不是素数,要排除
ri--;
continue;
}
for (i = 2; i <= Math.sqrt(m); i++) {
if (m % i == 0) {
flag = false;
break;
}
}
//add ends
if (flag)
System.out.println("YES");
else
System.out.println("NO");
}
}
}

❹ java 判断素数 for(int i=2;i<=n/2;i++) 为什么非得i<=n/2呢

因为要整除

n%2==0就是整除了,所以i<=n/2就是取一半,是个数学题,当然可以i<=n,不过好像没有必要

素数就是2开始到比自己小的数,然后还不能被其他数字整除,应该是这个意思吧,

publicstaticbooleanisPrime(intstart,Stringinput)
{
input=input.startsWith("+")?input.substring(1):input;
intnumber=Integer.parseInt(input);
if(number<2)
{
returnfalse;
}
start++;
if(start>=number)
{
returntrue;
}
if(number%start==0)
{
returnfalse;
}
returnisPrime(start,input);//递归调用
}

❺ Java中 什么是素数什么条件

素数是指不能被除了一和自身整除的数,所以判断num是不是素数只有从二开始一直除到num/2,都不能整除就返回true,表示是素数,否则返回false,表示不是素数。

❻ java怎么判断素数

1、目前使用较有效的方法是试除法。用试除法判断一个自然数a是不是素数时,用各个素数从小到大依次去除a,如果到某一个素数正好整除,这个a就可以断定不是素数;如果不能整除,当不完全商又小于这个素数时,就不必再继续试除,可以断定a必然是素数。
2、素数又称质数。一个大于1的自然数,除了1和它本身外,不能被其他自然数整除,换句话说就是该数除了1和它本身以外不再有其他的因数;否则称为合数。
3、素数是与合数相对立的两个概念,二者构成了数论当中最基础的定义之一。基于质数定义的基础之上而建立的问题有很多世界级的难题,如哥德巴赫猜想等。目前为止,人们未找到一个公式可求出所有素数,所以还没有固定的判断公式。
4、一般记住100以内的素数就可以了。有2、3、5、7、11、13、19、17、23、29、37、31、41、47、43、53、59、61、71、67、73、83、89、79、97,一共25个。

❼ java 判断素数

public boolean isPrime(int n){
for(int i=2;i<=n/2;i++){
if(n%i == 0)
return false;
}
return true;
}

❽ java程序素数输出2为什么不是素数,加什么可以输入2是素数

请输入一个(大于1的)正数
for 里面 i从1开始。
质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。

❾ java输出2—50所有的素数

public
class
PrimeNumber
{
public
static
void
main(String[]
args)
throws
IOException
{
System.out.print(primeNumber(50));
}
public
static
List<Integer>
primeNumber(int
num)
{
List<Integer>
list
=
new
ArrayList<Integer>();//
存放素数
for
(int
i
=
1;
i
<=
num;
i++)
{
if
(i
!=
1)
{//1不是素数
if
(list.size()
!=
0)
{
boolean
havePn
=
false;//标志;是否存在一个除数使该被除数被整除
for
(Integer
m
:
list)
{
if
(i
%
m
==
0)
{
havePn
=
true;//存在
}
}
if
(!havePn)
{//若不存在,该数是素数
list.add(i);
}
}
else
{
list.add(i);
}
}
}
return
list;
}
}
结果如下:
[2,
3,
5,
7,
11,
13,
17,
19,
23,
29,
31,
37,
41,
43,
47]

❿ java 1到100内的质数

int i,j;

for(i = 2; i <= 100; i++){//从2数到100,判断之间的每一个数是否是质数

//下面的循环是质数判断过程

for(j = 2; j <= i/2; j++){

if(i % j == 0)

break;//如果这个数能被一个数整除,那么这个数不是质数。break的作用是跳出此次循环,进入下一次循环。

}

if(j > i/2){

System.out.println(i);//如果这个数不能被自身1/2的数整除,他就是质数,输出这个数.System.out.println()这个语句就是输出语句

}

}

System.out.println();//这句语句是多余的,什么也没打印。

完整代码及运行结果如图。

拓展资料

质数(prime number)又称素数,有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。

这道题只要理解质数的计算方法就容易解答。

阅读全文

与java素数2相关的资料

热点内容
显示当前模式下所有可执行的命令 浏览:758
为什么程序员拿了股份还要高薪 浏览:946
电脑运行命令里的记录能删吗 浏览:697
linuxwss 浏览:848
一个软件需要登录服务器地址 浏览:923
哪里有解压程序 浏览:299
java静态方法内存 浏览:545
我的世界ec服务器如何带vip 浏览:737
什么是由解析器域名和服务器构成 浏览:414
自动识别电影信息源码 浏览:849
柱筋箍筋加密区怎么算 浏览:48
钢筋中加密15倍是什么意思 浏览:366
esc加密算法 浏览:518
linux运行exe命令 浏览:124
一级建造师管理pdf 浏览:720
如何更改服务器登录账号 浏览:317
看pdf文件软件 浏览:183
android恢复模式 浏览:808
生命令人忧 浏览:597
魔兽搬砖怎么选择服务器 浏览:771