当前位置:首页 » 编程语言 » 素数判断java

素数判断java

发布时间: 2022-04-23 02:13:08

❶ 用java编写一个判断素数的程序

import java.util.*;

public class Test {

public static void main (String[] args) {

int n,i;
System.out.print("请随便输入一个数n");

Scanner sc =new Scanner(System.in);
int n=sc.nextInt();

for(i=n-1;i>1;i--)
if(n%i==0)
break;
if(n==i)
System.out.println(n+"是素数");

}
}

这个应该比较简单吧!好理解吧!
楼主要到API文档中好好查一下 Scanner 这个函数的使用方法\
不紧可以输入一个整数...还可以输入一个字符串..呵 呵 ..
很好用的噢!!

祝君早日成功!

❷ 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中判断素数

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

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

❹ java判断素数

素数,只能被1和本身整除,只要用一个循环来判断,如果该数能被除1或者本身之外的数整除就输出0,否则输出1

package zhongqing;
import java.util.Scanner;
public class sushu {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("\n输入数字:"); /*输入数值N,获取N的值*/
int N = input.nextInt();
int i;
for(i=2;i<N;I++){ /*用一个for循环来判断判断是否为素数*/
if(N%i==0) /*如果能和i取余数为0表示不是素数*/
System.out.print("\n1"); /*输出1*/
else
System.out.print("\n0");} /*否则输出0*/
}}

❺ java 判断素数

importjava.util.Scanner;

publicclassPrimeNumber{

publicstaticvoidmain(String[]args){
Scannerscanner=newScanner(System.in);
System.out.println("请输入一个数:");

intnum=scanner.nextInt();//输入的待判断的数字

if(isPrime(num))
System.out.println("数字"+num+"是素数");
else
System.out.println("数字"+num+"不是素数");
}

/**
*判断一个数是否是素数
*算法核心:
* 定理:如果n不是素数,则n有一个因子d满足1<d<=sqrt(n)
* 证明:如果n不是素数,则由定义:n有一个因子d满足1<d<n。如果d大于sqrt(n),则n/d是满足1<n/d<=sqrt(n)的一个因子
*
*由此可知:1.小于等于2的不是素数2.2的倍数的数也不是素数3.如果从小到大开始遍历,一直到sqrt(n)还不能找到一个因子d,
* 则可以说明该数是素数
*
*@paramnum待判断的数
*@return判断结果
**/
privatestaticbooleanisPrime(intnum){
if(num<=2||num%2==0)
returnfalse;
for(inti=3;i*i<=num;i+=2){
if(num%i==0)
returnfalse;
}

returntrue;
}

}


详细的解释已经写在上面的代码的注释中了,当然这种算法不算最优,但是比较简单易理解。当然更优的方案可以采用“筛选法”,具体的可以自行网络

❻ java素数的判断

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class T2 {

public static void main(String[] args) {
new T2().judge1();
new T2().judge2();
}

public void judge1(){
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
System.out.println("请输入一个数字");
String str = br.readLine();
int a = Integer.parseInt(str);

if(isPrimes(a)){
System.out.println(a+" 是素数");
}else{
System.out.println(a+" 不是素数");
}

}catch(NumberFormatException e){
System.out.println("只能是数字");
judge1();
}catch (IOException e) {
System.out.println("读取出错了");
}
}

private void judge2() {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
System.out.println("请输入两个数用,号隔开(一个范围)");
String str = br.readLine();
String [] s = str.split(",");

int a = Integer.parseInt(s[0]);
int b = Integer.parseInt(s[1]);

isPrimes2(a, b);

}catch(NumberFormatException e){
System.out.println("格式不正确");
judge2();
}catch (IOException e) {
System.out.println("读取出错了");
}
}

private void isPrimes2(int a, int b) {

System.out.println(a+"-"+b+"范围的素数有:");
for(int i=a;i<=b;i++){
if(isPrimes(i)){
System.out.print(i+",");
}
}
}

public static boolean isPrimes(int n) {
for (int i = 2; i <= Math.sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
}

}

❼ 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怎么判断素数

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.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:判断素数

//判断一个数 是不是素数
public static void printSuShu(int s) {
for (int i = 2; i <= s / 2; i++) {
if (s % i == 0) {
return;
}
}
System.out.println(s);
}

热点内容
java用什么软件写 发布:2025-05-18 03:56:19 浏览:25
linux配置vim编译c 发布:2025-05-18 03:55:07 浏览:99
砸百鬼脚本 发布:2025-05-18 03:53:34 浏览:934
安卓手机如何拍视频和苹果一样 发布:2025-05-18 03:40:47 浏览:727
为什么安卓手机连不上苹果7热点 发布:2025-05-18 03:40:13 浏览:797
网卡访问 发布:2025-05-18 03:35:04 浏览:504
接收和发送服务器地址 发布:2025-05-18 03:33:48 浏览:366
ef数据库查询数据 发布:2025-05-18 03:29:36 浏览:668
百度云下载文件夹 发布:2025-05-18 03:17:33 浏览:674
php云开发 发布:2025-05-18 03:12:41 浏览:447