java 判断是不是素数

判断number是否是素数有这么几种方法:
(1)用2至number-1之间的所有数去整除number,如果有一个能被整除,说明number是非素数;除非所有的数都不能被整除,才说明number是素数。
(2)用2至number/2之间的所有数去整除number,如果有一个能被整除,说明number是非素数;除非所有的数都不能被整除,才说明number是素数。
(3)用2至number的平方根之间的所有数去整除number,如果有一个能被整除,说明number是非素数;除非所有的数都不能被整除,才说明number是素数。

这3种的方法的效率是逐渐提高的。下面列出了第3种方法的实现:
import java.util.Scanner;

public class Test2 {

public static void main(String[] args) {
int number; // 输入的数字

Scanner input = new Scanner(System.in);
System.out.println("请输入数字");
number = input.nextInt(); // 输入数字

if(isPrimeNumber(number)){
System.out.println(number + "是一个素数");
}
else{
System.out.println(number + "是一个非素数");
}
}

public static boolean isPrimeNumber(int num){
if(num < 2){
System.out.println("数据错误");
return false;
}

int k = (int)Math.sqrt(num); //num的平方根
int i;
for(i=2; i<=k; i++){ //依次用2..k之间的数去整除num,如果没有一个数能被整除,说明num是素数
if(num % i == 0){
break;
}
}
if(i > k){
return true;
}
return false;
}
}

如果对你的程序进行修改,也可这样:
public static void main(String[] args) {
int number;// 输入的数字
int j = 2;

Scanner input = new Scanner(System.in);
System.out.println("请输入数字");
number = input.nextInt();// 输入数字

for(j=2;j<number;j++){

if(number%j == 0) {

System.out.println("这不素数");
break;
}
}
if(j>=number)
System.out.println("这是素数");
}

Ⅱ java判断素数的代码

法一:

class Test2
{
public static void main (String []args)
{ int j;
for(int n=1;n<=100;n++)
{
for(j=2;j<=n-1;j++)
{
if(n%j==0)
break;
}
if(j>=n-1)
System.out.println(n);
}
}
}

法二:

import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class sushu extends Applet implements ActionListener{
TextField t1=new TextField(5);
TextField t2=new TextField(5);
Button b1=new Button("begin");
int m,n;
public void init(){
add(t1);
add(t2);
add(b1);
b1.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
m=Integer.parseInt(t1.getText());
n=Integer.parseInt(t2.getText());
repaint();
}
public void paint(Graphics g){
boolean f;
int i,j,k=0;
for(i=m;i<=n;i++){
f=true;
for(j=2;j<=i-1;j++)
if(i%j==0)
{f=false;break;}
if(f){
g.drawString(" "+i,(k%10)*20+20,(k/10)*60+80);
k=k+1;
}

}
}
}

Ⅲ 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编写判断素数的程序

import java.util.*;
class Test {
public static void main(String[] args) {
System.out.println("请输入要进行判断的整数:");
Scanner sc = new Scanner(System.in);
int number = sc.nextInt();
System.out.println("您输入的整数是:" + number);
if(isPrimeNumber(number)) {
System.out.println("您输入的数" + number + "是素数。");
} else {
System.out.println("您输入的数" + number + "不是是素数。");
}
}
//判断素数的静态方法
public static boolean isPrimeNumber(int num) {
boolean flag = true;
if(num == 2) {
return flag;
}
for(int i = 1; i < Math.sqrt(num); i++) {
if(num % 2 == 0) {
flag = false;
break;
}
}
return flag;
}
}

写了一个,不知道满足你的要求不?

Ⅳ 在java中如何判断一个数是不是素数

importjava.util.Scanner;

publicclassDemo{

publicstaticvoidmain(String[]args){
System.out.println("请输入一个正整数:");
Scannerscanner=newScanner(System.in);
intnumber=scanner.nextInt();
System.out.println("是否是素数:"+isPrime(number));
scanner.close();
}

staticbooleanisPrime(intnumber){
if(number<=1){
returnfalse;
}

for(inti=2;i<=Math.sqrt(number);i++){
if(number%i==0){
returnfalse;
}
}

returntrue;
}
}

Ⅵ 用 java 怎么判断一个数是否为质数

应该是有函数吧
建议直接网络搜索
逻辑存在很大的问题,判断质素的守则是除了本身和1,其他数内都不能将自己整除容,所以楼主你应该做的事情是将你输入的数循环与2开始到你输入的数-1的数依次比较,有一次整除没有余数就说明不是素数。按照你的代码修改应该是:
bool flag=false;
for(int i=2;i<num;i++)
{
if(num%i==0)
{
flag=true;
break;
}
}
接下来判断flag的值,如果是 true代表不是质数,flase的话代表是质数

Ⅶ JAVA中素数的判断

int[] num={2,3,5,7};
public boolean isPrime(int a){
boolean flag=true;//默认传入的数是素数
if(a==1 || a==2 )return flag;//1 2 的时候直接返回true
if(a==0)return false;//0不是素数
for(int i=0;i<num.length;i++){
int number=num[i];
if(a!=number && a==((a/number)*number)){//a除以数组中的数都没有余数的时候代表a不是素数
flag=false;
}
}
return flag;
}

public List getPrimes(int a, int b){//我默认a<b了 其他你自己判断吧;
List<Integer> list=new ArrayList<Integer>();
for(int i=a;i<=b;i++){//我有个疑问a,b范围内包括a,b不?我默认包括了
if(isPrime(i)==true){//判断是否是素数
list.add(i);
}
}
if(list.size()>0){
for(Iterator<Integer> it=list.iterator();it.hasNext();){
System.out.println(it.next());
}
}
return list;
}

没经过测试,都是在这框里打的,可能有问题,你看下吧。

Ⅷ java判断素数

楼主,首先你得知道,java是面向对象的语言。而c语言是面向过程的。
C语言你可以用scanf输入n。但是java是面向对象的。你想从屏幕得到一个数。必须调用一个类的方法从而取得n。这些类就是输入输出流对象。如BufferedReader等。
建议你去看看java的输入输出流。
一下是代码:
import java.io.*;
public class SystemInTest{
//判断是否为质数,是的话返回true不是的话返回false
public static boolean isPrimeNumber(int n)
{
//2为质数
if(2==n)
{
return true;
}
for(int i=2;i<n;i++)
{
if(n%i==0)
return false;
}
return true;
}
public static void main(String [] args) throws NumberFormatException, IOException{
int n=0;
while(true){//为了方便测试,无限循环
System.out.println("请输入一个大于1的整数:");
//以屏幕为输入源 新建一个BufferedReader
BufferedReader bin=new BufferedReader(new InputStreamReader(System.in));
n=Integer.parseInt(bin.readLine()); //从屏幕得到的是字符串类型的,转换为整数类型
if(isPrimeNumber(n))
{
System.out.println(n+":是一个质数.");
}else{
System.out.println(n+"不是一个质数.");
}
}

}
}

Ⅸ java中判断素数

下边是一个判断num是否是素数的方法,若是素数,返回ture,否则返回false

publicbooleanisPrime(intnum)
{
for(inti=2;i<=Math.sqrt(num);i++)
{
if(num%i==0)returnfalse;
}
returntrue;
}