java如何判斷一個數(shù)是否是素數(shù)(質(zhì)數(shù))
java判斷一個數(shù)是否是素數(shù)(質(zhì)數(shù))
質(zhì)數(shù)(prime number)又稱素數(shù),有無限個
質(zhì)數(shù)定義為在大于1的自然數(shù)中,除了1和它本身以外不再有其他因數(shù),這樣的數(shù)稱為質(zhì)數(shù)。
import java.util.Scanner;
public class TestWork {
public static void main(String[] args) {
boolean isPrime = true;
Scanner sc = new Scanner(System.in);
System.out.println("請輸入一個正整數(shù)");
int num = sc.nextInt();
if (num > 0) {
int k = (int) Math.sqrt(num);//k為num的正平方根,取整數(shù)
for (int i = 2; i <= k; i++) {
if (num % i == 0) {
isPrime = false;//不是素數(shù)
break;
}
}
}
if (isPrime) {
System.out.println(num + "是素數(shù)");
} else {
System.out.println(num + "不是素數(shù)");
}
}
}
輸出1~1000之間的素數(shù)
思路
偶數(shù)肯定不是素數(shù),所以遞增的時候可以以奇數(shù)的形式遞增,再在奇數(shù)中去掉非質(zhì)數(shù)的數(shù)。
public class TestWork {
public static void main(String[] args) {
boolean isPrime = true;
int PrimeCount=0;
for (int i = 3; i <= 1000; i+=2) {
int k = (int) Math.sqrt(i);//k為num的正平方根,取整數(shù)
isPrime = true;
for (int j = 2; j <= k; j++) {
if (i % j == 0) {
isPrime = false;//不是素數(shù)
break;
}
}
if (isPrime) {
PrimeCount++;
System.out.print(i+"\t");
if(PrimeCount%5==0){
System.out.println();
}
}
}
}
}
java 求1-100之間的質(zhì)數(shù)
質(zhì)數(shù)定義:
質(zhì)數(shù)又稱素數(shù)。一個大于1的自然數(shù),除了1和它自身外,不能被其他自然數(shù)整除的數(shù)叫做質(zhì)數(shù);否則稱為合數(shù)。
如:2,3,5,7,11…
1、質(zhì)數(shù)實(shí)例一
//1-100之間的質(zhì)數(shù)--------1
public class PrimeNumber {
public static void main(String[] args) {
for(int i=2;i<=100;i++) {
boolean flag=true;
for(int j=2;j<i;j++) {
if(i%j == 0) {
flag=false;
break;
}
}
if(flag) {
System.out.println("質(zhì)數(shù):i= "+i);
}
}
}
}
2、質(zhì)數(shù)實(shí)例二
//1-100之間的質(zhì)數(shù)--------2
public class PrimeNumber {
public static void main(String[] args) {
for(int i=2;i<=100;i++) {
for(int j=2;j<=i;j++) {
if(i%j==0 && i!=j) {
break;
}
if(j==i) {
System.out.println("質(zhì)數(shù):i= "+i);
}
}
}
}
}
3、質(zhì)數(shù)實(shí)例三
//1-100之間的質(zhì)數(shù)--------3
public class PrimeNumber {
public static void main(String[] args) {
for(int i=2;i<=100;i++) {
int j=2;
while(i%j != 0 ) {
j++;
}
if(j==i) {
System.out.println("質(zhì)數(shù):i= "+i);
}
}
}
}
4、質(zhì)數(shù)實(shí)例四
//1-100之間的質(zhì)數(shù)--------4
public class PrimeNumber {
public static void main(String[] args) {
for(int i=2;i<=100;i++) {
int j=2;
for(;j<=i/2;j++) {
if(i%j==0) {
break;
}
}
if(j==i/2+1) {
System.out.println("質(zhì)數(shù):i= "+i);
}
}
}
}
5、質(zhì)數(shù)實(shí)例五
public class PrimeNumber {
public static void main(String[] args) {
int count=0;
for(int i=2;i<=100;i++) {
int j=2;
for(;j<=(int)Math.sqrt(i);j++) {
if(i%j==0) {
break;
}
}
if(j==(int)Math.sqrt(i)+1) {
System.out.println("質(zhì)數(shù):i= "+i);
count++;
}
}
System.out.println("質(zhì)數(shù)個數(shù):count= "+count);
}
}
6、質(zhì)數(shù)實(shí)例六
public class PrimeNumber {
public static void main(String[] args) {
int count1 = 0, count2 = 0;
for (int i = 2; i <= 100; i++) {
for (int j = 2; j <= Math.sqrt(i); j++) {
if (i % j != 0) {
//不能被整除累計一次
count1++;
}
}
// 轉(zhuǎn)為int的類型
int num2 = (int) Math.sqrt(i);
//如果累計次數(shù)num2 - 1個數(shù)相等則為素數(shù)
if (count1 == (num2 - 1) {
System.out.println("質(zhì)數(shù): " + i);
count2++;
}
//找到素數(shù)后count1再初始化為0
count1 = 0;
}
// 統(tǒng)計素數(shù)個數(shù)
System.out.println("質(zhì)數(shù)個數(shù):count2= "+count2);
}
}
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用Cloud Toolkit在IDEA中極速創(chuàng)建dubbo工程
這篇文章主要介紹了使用Cloud Toolkit在IDEA中極速創(chuàng)建dubbo工程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
Java中日期的加減&String Date Calendar的相互轉(zhuǎn)換方式
這篇文章主要介紹了Java中日期的加減&String Date Calendar的相互轉(zhuǎn)換方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-05-05
詳解spring封裝hbase的代碼實(shí)現(xiàn)
本篇文章主要介紹了詳解spring封裝hbase的代碼實(shí)現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05
Spring中的AutowireCandidateResolver的具體使用詳解
這篇文章主要介紹了Spring中的AutowireCandidateResolver的具體使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
Tomcat能起開,但是訪問不進(jìn)8080首頁的問題解決方案
這篇文章主要介紹了Tomcat能起開,但是訪問不進(jìn)8080首頁的問題解決方案的相關(guān)資料,需要的朋友可以參考下2016-10-10
Gradle構(gòu)建多模塊項(xiàng)目的方法步驟
這篇文章主要介紹了Gradle構(gòu)建多模塊項(xiàng)目的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05

