Java程序:
創(chuàng)新互聯(lián)是一家專業(yè)提供運(yùn)河企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、H5頁(yè)面制作、小程序制作等業(yè)務(wù)。10年已為運(yùn)河眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("請(qǐng)輸入一個(gè)整數(shù):");
int number = scan.nextInt();
PrimeNumber pn = new PrimeNumber();
pn.setNumber(number);
pn.printAll();
}
}
class PrimeNumber {
protected int number;
public void setNumber(int number) {
this.number = number;
}
public int getNumber() {
return this.number;
}
public boolean isPrimeNumber(int number) {
int k = (int)(Math.sqrt(number));
for(int i=2; i=k; i++) {
if(number % i == 0) {
return false;
}
}
return true;
}
public void printAll() {
for(int i=2; i=number; i++) {
if(isPrimeNumber(i)) {
System.out.println(i);
}
}
}
}
運(yùn)行測(cè)試:
請(qǐng)輸入一個(gè)整數(shù):100
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97
/**
*?0-100:是:101個(gè)數(shù)字,不是100個(gè);
*?0與1,不是質(zhì)數(shù)也不是合數(shù):
*?以下代碼寫(xiě)的有點(diǎn)冗余:只因?yàn)轭}目要求,布爾數(shù)組要參與運(yùn)算!
*?其實(shí)一個(gè)循環(huán)就可以解決的事!
*/
public?class?Prime?{
public?static?void?main(String[]?args)?{
int?arr[]=new?int[101],count=0;//元素?cái)?shù)組!
boolean[]?brr=new?boolean[101];//標(biāo)記數(shù)組!
for(int?i=0;iarr.length;i++)?//循環(huán)復(fù)制!
arr[i]=i;
f:for?(int?i?=?0;?iarr.length;?i++)?{//判斷!
if(i2)continue?f;//跳過(guò),0,1;
for(int?tem=i;tem--!=2;)?
if(i%tem==0)?
continue?f;
brr[i]=true;//標(biāo)記
}
for?(int?i?=?0;?i??brr.length;?i++)?{//查看!
if(brr[i]!=false)?{
count++;
System.out.print(arr[i]+"?");
}
}
System.out.println("\r\n0-100質(zhì)數(shù)共:"+count+"個(gè)!");
}
}
求1-N以內(nèi)的所有素?cái)?shù),實(shí)現(xiàn)思路如下:
1、 得到1到n之間的素?cái)?shù),存到一個(gè)ArrayList集合。
2、判斷一個(gè)數(shù)是不是素?cái)?shù):只能被1和本身整除
說(shuō)明:從2開(kāi)始除,不需要到n,也就是循環(huán)條件是 n 就可以,這之間只要被整除了,那么他就不是素?cái)?shù)了。
3、設(shè)置主函數(shù),運(yùn)行?getPrimeNumberToN獲取限定范圍內(nèi)的素?cái)?shù)。?
執(zhí)行結(jié)果圖:
擴(kuò)展資料:
實(shí)現(xiàn)功能的編程事項(xiàng):
1、模塊化思想。
先拆分需求,先拆分先考慮怎么確定一個(gè)數(shù)是不是素?cái)?shù),然后再?gòu)?fù)用到所有。不能把方法堆到一起,否則無(wú)法復(fù)用代碼。
2、注意注釋。
就算是自己的測(cè)試代碼,盡量寫(xiě)清楚注釋,這樣即使過(guò)了三個(gè)月,再看代碼,也能清晰明了。不要覺(jué)得簡(jiǎn)單,就懶得注釋。
3、注意參數(shù)命名。
從類名到方法名,再到變量名,都不能隨意取名,關(guān)于這個(gè)命名,不要嫌棄長(zhǎng),重點(diǎn)是意思清楚明白。見(jiàn)名知意(語(yǔ)義化),是最好的。
我給的答案是可以你輸入的數(shù)以內(nèi)的所有質(zhì)數(shù)
import?java.util.Scanner;
public?class?test2?{
public?static?void?main(String?arg[]){
System.out.println("請(qǐng)輸入要求除的質(zhì)數(shù)");
Scanner?in?=?new?Scanner(System.in);
int?num=in.nextInt();
int?a=0;
for(int?j=num;j1;j--){
for(int?i=2;ij;i++){????
if(j%i==0){
a++;
}
}
if(a==0){
System.out.println(j+"是質(zhì)數(shù)。");
}
else?{
a=0;
}
}
}
}
親測(cè)可用
程序如下,希望有所幫助
public class Prime {
//判斷質(zhì)數(shù)
public static void isPrime(int num) {
int j = 2;
for (; j = Math.sqrt(num); j++) {
if (num % j == 0) {
System.err.println(num + "不是質(zhì)數(shù)!");
return;
}
}
if (j Math.sqrt(num)) {
System.err.println(num + "是質(zhì)數(shù)!");
return;
}
System.err.println(num + "不是質(zhì)數(shù)!");
return;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.err.println("請(qǐng)輸入數(shù)字:");
int num = sc.nextInt();//接收輸入
isPrime(num);//判斷是否為質(zhì)數(shù)
}
}
一個(gè)好的算法,要經(jīng)的起推敲,不要只求結(jié)果
import?java.util.ArrayList;
import?java.util.List;
public?class?Primes?{
public?static?void?main(String[]?args)?{
//?求素?cái)?shù)
ListInteger?primes?=?getPrimes(200);
//?輸出結(jié)果
for?(int?i?=?0;?i??primes.size();?i++)?{
Integer?prime?=?primes.get(i);
System.out.printf("%8d",?prime);
if?(i?%?10?==?9)?{
System.out.println();
}
}
}
/**
*?求?n?以內(nèi)的所有素?cái)?shù)
*
*?@param?n
*????????????范圍
*
*?@return?n?以內(nèi)的所有素?cái)?shù)
*/
private?static?ListInteger?getPrimes(int?n)?{
ListInteger?result?=?new?ArrayListInteger();
result.add(2);
for?(int?i?=?3;?i?=?n;?i?+=?2)?{
if?(!divisible(i,?result))?{
result.add(i);
}
}
return?result;
}
/**
*?判斷?n?是否能被整除
*
*?@param?n
*????????????要判斷的數(shù)字
*?@param?primes
*????????????包含素?cái)?shù)的列表
*
*?@return?如果?n?能被?primes?中任何一個(gè)整除,則返回?true。
*/
private?static?boolean?divisible(int?n,?ListInteger?primes)?{
for?(Integer?prime?:?primes)?{
if?(n?%?prime?==?0)?{
return?true;
}
}
return?false;
}
}