素数判断java
❶ 用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);
}