使用java编写判断自然数是否为素数的方式是,使用scanner来接受用户输入的数值,使用素数的算法,实例如下:
创新互联-专业网站定制、快速模板网站建设、高性价比鄢陵网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式鄢陵网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖鄢陵地区。费用合理售后完善,十余年实体公司更值得信赖。
Scanner sr = new Scanner(System.in);
System.out.print("请输入a的值:");
int a = sr.nextInt();
boolean is = true;
if (a 1)
{
System.out.println(a + "不是质数,因为他小于一");
}
else
{
ListInteger list = new ArrayListInteger();
for (int i = 2; i a; i++)
{
if (a % i != 1 a % i != a)
{
if (a % i == 0){
is=false;
list.add(i);
}
}
}
if(is){
System.out.println("a是质数");
}else{
String yz="";
for (int i = 0; i list.size(); i++)
{
if (yz=="")
{
yz=yz+list.get(i);
}else{
yz=yz+","+list.get(i);
}
}
System.out.println("a不是质数,因为他含有因子"+yz);
}
}
判断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;jnumber;j++){
if(number%j == 0) {
System.out.println("这不素数");
break;
}
}
if(j=number)
System.out.println("这是素数");
}
int n = 7; //输入的自然数
int k = 0; //输出的状态控制 初始化为0
for (int i = 2; i n; i++) { //循环判断
if (n%i == 0) { // 判断是不是因子
System.out.println(n + "不是素数"); //输出不是素数
k = 1; //控制置1
break; //只要有一个因子就不用继续循环判断了,跳出循环
}
}
if (k == 0) { //状态为0则输出为素数
System.out.println(n + "是素数");
}
import java.io.*;
class prime{
private int num;
static boolean isprime(int num){
if(num=1) return false;
int i;
for(i=2;i=num/2;i++)
if(num%i==0) return false;
return true;
}
}
class Main {
public static void main (String[] args)
throws IOException{
int num=0;
String data;
BufferedReader br = new
BufferedReader(new
InputStreamReader(System.in));
System.out.print( "请输入一个整数:" );
data=br.readLine ();
try{
num = Integer.parseInt (data);
}
catch(NumberFormatException e){}
if(prime.isprime (num)){
System.out.println ( num+"是素数!" );
}
else
System.out.println ( num+"不是素数!" );
}
}
祝君好运啊
import java.util.Scanner;
//质数又称素数,是指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数
public class PrimeNumber {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);// 扫描器,接收控制台输入信息
System.out.print("请输入一个整数:");
try {
int num = scan.nextInt();// 取出控制台输入的信息
if (isPrime(num)) {// 调用isPrime()方法
System.out.println(num + "是素数!");// 若isPrime()方法返回true,输出是素数
} else {
System.out.println(num + "不是素数!");// 若isPrime()方法返回false,输出不是素数
}
} catch (Exception e) {
System.out.println("请输入整数");// 捕捉异常,若输入的不是整数,输出异常
}
}
/**
* pre
* 用于判断一个数是否为素数,若为素数,返回true,否则返回false
* /pre
*
* @param a
* 输入的值
* @return true、false
*/
public static boolean isPrime(int a) {
boolean flag = true;
if (a 2) {// 素数不小于2
return false;
} else {
for (int i = 2; i = Math.sqrt(a); i++) {
if (a % i == 0) {// 若能被整除,则说明不是素数,返回false
flag = false;
break;// 跳出循环
}
}
}
return flag;
}
}
文章来自秋叶为何落的博客分享