當前位置:首頁 » 編程語言 » 合數java

合數java

發布時間: 2023-11-27 16:56:07

java判斷隨機數質數合數

你的do-while循環的判斷條件寫反了,應該寫繼續循環的條件,而不是退出循環的條件.

即把while((r==0)||(i>x));改成while((r!=0)&&(i<=x));就行了.

多試幾次,就會既有合數又有質數了.

完整的Java程序如下:

importjava.util.Random;

publicclasshe{

publicstaticvoidmain(String[]args){

Randomrandom=newRandom();

intn;

n=random.nextInt(100)+0;

System.out.println("n="+n);

inti;

i=2;

intr=0;

intx=n-1;

do{

r=n%i;

i=i+1;

}while((r!=0)&&(i<=x));

if(r==0){

System.out.println("n是合數");

}else{

System.out.println("n是質數");

System.out.println("r="+r);

System.out.println("i="+i);

}

}

}

運行結果:

n=97
n是質數
r=1
i=97

n=27
n是合數

❷ Java小程序,求100以內的合數

//循環100以內的數(除去1)
for(intn=2;n<=100;n++)
{
//循環相除2-自身一半的數
for(inti=2;i<=n/2;i++)
{
//如果找到一個數能整除,則為合數
if(n%i==0)
{
System.out.println(n);
//跳出循環
break;
}
}
}

❸ java怎樣判斷一個數是不是質數

由於大於2的質數一定是奇數(奇數又不一定都是質數),所以,在判斷一個自然數是不是質數時,首先要看它是奇數還是偶數。如果是大於2的偶數,這個數肯定不是質數,而是合數;如果是奇數,那就有可能是質數。在這種情況下,一般使用以下兩種方法:
(1)查表法:
主要是指查「質數表」。編制質數表的過程是:按照自然數列,第一個數1不是質數,因此要除外,然後按順序寫出2至500的所有自然數,這些數中2是質數,把它留下,把2後面所有2的倍數劃去,2後面的3是質數,接著再把3後面所有3的倍數劃去,如此繼續下去,剩下的便是500以內的全部質數。
最早使用上述方法來尋求質數的人,是古代希臘數學家埃拉托斯特尼,由於他在開始時,先把自然數寫在一塊蠟板上,把不是質數的數(合數)分別刺上一個孔,這樣,在蠟板上就被刺上了許多象篩子一樣的孔,後來,大家就把這種尋求質數的方法叫做「篩法」。
這類的質數表還可以編製成數字范圍更大一些的,如1000以內質數表等。判斷一個自然數是不是質數,如在表所規定的數字范圍內,即可用查表的方法進行判斷。
(2)試除法:
在手頭上沒有質數表的情況下,可以用試除法來判斷一個自然數是不是質數。例如判斷143、179是不是質數,就可以按從小到大的順序用2、3、5、7、11……等質數去試除。一般情況下用20以內的2、3、5、7、11、13、17、19這8個質數去除就可以了。如143,這個數的個位是3,排除了被2、5整除的可能性,它各位數字的和是1+4+3=8,也不可能被3整除,通過口算也證明不能被7整除,當試除到11時,商正好是13,到此就可以斷定143不是質數。
對179試除過程如下:
179÷2=59……2
179÷3=66……1
179÷5=35……4
179÷7=25……4
179÷11=16……3
179÷13=13……10
179÷17=10……9
當179÷17所得到的不完全商10比除數17小時,就不需要繼續再試除,而斷定179是質數。這是因為2、3、5、7、11、13、17都不是179的質因數,因此,179不會再有比17大的質因數,或者說179不可能被小於10的數整除,所以,179必是質數無疑。
綜上所述,用試除法判斷一個自然數a是不是質數時,只要用各個質數從小到大依次去除a,如果到某一個質數正好整除,這個a就可以斷定不是質數;如果不能整除,當不完全商又小於這個質數時,就不必再繼續試除,可以斷定a必然是質數。

❹ 編寫java代碼:判斷1-200之間有多少個合數(非素數),並輸出所有合數

public class Test {

/**
* @param args
*/
public static void main(String[] args) {
//count統計素數個數
int count=1;
boolean flag;
//所有除2的偶數都不是素數
for(int i=3;i<200;i=i+2)
{
//默認當前循環的數不是素數,標記flag為true
flag=true;
for(int j=2;j<i;j++)
{
if(i%j==0)
{
//統計素數個數自增長,將標記flag調整為false
flag=false;
break;
}
}
if(flag){
System.out.println("當前素數為:"+i);
count++;
}
}
int num=200-count;
System.out.println("素數個數為:"+count);
System.out.println("非素數個數為:"+num);
}

}

❺ 用java如何寫代碼去判斷質數和合數

首先介紹下:質數是除了本身和1以外,沒有質因數,就是沒有數能夠整除之;合數是除了本身和1以外還有第三個數能整除之。
具體示例代碼如下:

publicclassDemo2{
publicstaticvoidmain(String[]args){
Scannerscan=newScanner(System.in);
System.out.print("請輸入一個數:");
intnum=scan.nextInt();
intindex=0;//使用一個數來標記是質數還是合數
for(inti=2;i<num;i++){
if(num%i==0){
index++;
}
}
if(index==0){//index等於0表示質數
System.out.println("這是個質數");
}
else{//index大於0表示合數
System.out.println("這是個合數");
}
}
}

需要注意的是:1不算質數也不算合數。

❻ JAVA:求1到100素數

public class Test{
public static void main(String []arg){
prime(100);
}
// 什麼是質數,合數,約數?
// 「素數」,又稱「質數」,是指:
// 除1和其自身之外,沒有其它約數的正整數
// 如 2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,...
// 2是最小的質數,也是唯一的偶質數
// 質數有無數多個
// 與素數相對的,有「合數」:
// 除1和其自身之外,仍有其它約數的正整數
// 規定:1和0既不是質數,也不是合數
// 一個數除了1和它本身不再有別的約數,
// 這樣的數叫做質數,也叫素數。20以內
// 的質數有:2、3、5、7、11、13、17、19
// 一個數除了1和它本身還有別的約數,這樣
// 的數叫做合數。1和0不是質數也不是合數。20
// 以內的合數有:4、6、8、9、10、12、14、15、16、18、20。
// 數a能被數b整除,a就是b的倍數,b就是a的約數。例如:15÷5=3,
// 那麼15是5的倍數,5是15的約數。約數與倍數是相互的,
// 不能單獨說15是倍數,5是約數。在討論質數、合數、約數、
// 倍數都指自然數(0除外)。
public int prime(int num) {// 能求無限大的質數//但如果所求的范圍太大,計算的時間需要很久
long is = System.currentTimeMillis();
int n, m, i = 0;
label1: for (n = 2; n <= num; n++) {
for (m = 2; m <= n / 2; m++) {
if (n % m == 0)
continue label1;
}
i++;
// System.out.println("第" + i + "個素數是:" + n);
}
long ie = System.currentTimeMillis();
System.out.println("time=" + (ie - is));
return i;
}}

❼ 如何用JAVA來判斷一個數為質數和合數,要求在DOS輸入一個數,用JAVA來判斷

importjava.util.Scanner;
publicclassIsPrime{
Scannerinput=newScanner(System.in);
//用戶輸入的數
intnum=0;
//標記是否是質數
booleanflag=true;
System.out.println("請輸入你要判斷的數:");
num=input.nextInt();
if(num<=0){
System.out.println("你輸入的數不合法!");
System.exit(0);//程序結束
}
if(num==1){
System.out.println("既不是質數也不是合數");
System.exit(0);//程序結束
}

for(inti=2;i<=num;i++){
//判斷是否找到一個能被整除的,如果找到不是質數就是合數,否則相反
if(num%i==0){
flag=false;
break;
}
}

if(flag==true){
System.out.println("是質數");
}else{
System.out.println("是合數");
}

}

❽ 求1至100之間的合數之和JAVA編程

public class Test{
public static void main(String []args){
int cn = 0;
for(int i=1;i<=100;i++){
i=i%10;
cn = cn+i;
}
System.out.println("個位上數之和 "+cnt);
}
}

❾ java編程:求解1到100間的合數之和,高手幫忙.

public class text {
public text() {
}

private int getSum()
{
int sum = 0;
for(int i=2;i<=100;i++)
{
if(!this.isPrimeNumber(i))
sum += i; //是合數則累加

}
return sum;
}
/**
*判斷是否是合數
*/
private boolean isPrimeNumber(int number)
{
for(int i=2;i<number;i++)
{
if(number%i == 0)
return false;
}
return true;
}

public static void main(String[] args) {
text text = new text();
System.out.println("1-100的合數的和是:"+text.getSum());
}
}

熱點內容
給定一個演算法 發布:2024-05-19 17:50:08 瀏覽:864
戀愛生物種離線緩存 發布:2024-05-19 17:49:15 瀏覽:578
卡巴斯基伺服器如何連接外網更新 發布:2024-05-19 17:42:06 瀏覽:560
手機虛榮怎麼連接伺服器 發布:2024-05-19 17:41:47 瀏覽:730
linux修改保存文件 發布:2024-05-19 17:30:38 瀏覽:666
網路有你腳本 發布:2024-05-19 17:29:55 瀏覽:770
黎明我的世界伺服器 發布:2024-05-19 17:17:34 瀏覽:539
雷神g50如何設置安卓原生模式 發布:2024-05-19 16:50:04 瀏覽:121
c語言小數四捨五入 發布:2024-05-19 16:23:28 瀏覽:525
資料庫被注入攻擊 發布:2024-05-19 16:21:31 瀏覽:835