java合數
『壹』 用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 程序判斷合數
//判斷合數,文件名HSPD.java
public class HSPD {
public boolean isPrime(int k) {
boolean flag = true;
int max = (int) Math.sqrt(k);
if(k==1||k==0){
flag = false;
}
for (int i = 2; i <= max; i++) {
if (k % i == 0) {
flag = false;
break;
}
}
return flag;
}
public static void main(String args[]){
HSPD k=new HSPD();
boolean s;
s=k.isPrime(256);
System.out.println("輸入數是256");
if(s==false){
System.out.println("輸入數是合數!");
}
else{
System.out.println("輸入數是素數!");
}
}
}
『叄』 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());
}
}
『肆』 編寫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編程,求10個最小的連續合數
public class ex5_3 {
public static void main(String args[]){
int m=4,n=0,k=0;
while(k!=1){
loop:
for(n=m;n<=m+9;n++)
{
System.out.print("n="+n+",");
System.out.println("m="+m);
if(judge(n)==0)
{
System.out.println("n="+n+"時,n為素數");
System.out.println("跳出循環");
System.out.println();
System.out.println("下一行的m和n的值應該相等");
n=m;//少這一句
m++;
continue loop;
}
}
k=1; n=m+9; System.out.println(m+"-"+n);
}
}
static int judge(int x){
int flag=0;
for(int i=2;i<=Math.sqrt(x);i++){
if(x%i==0) flag=1;
}
return flag;
}
}
你的程序出錯的原因是continue loop;意思是「執行下一次循環」而不是「跳出循環之後再次執行這個循環」,它不會執行for(n=m;n<=m+9;n++)裡面的n=m這一句(你把n=m,改成n=4,並不影響結果),而僅僅是將上一次循環之後的n值自加1,然後和n<m+9,進行比較,如果成立就執行循環體,所以我在循環中人為設置了n=m這一句,你執行一下,看看列印的內容,就知道了。
你的程序因為沒有人為設置n=m,所以僅僅就執行「如果n是素數(質數),m就自加1」當n=5,7,11,13,17,這5個值時m進行自加,從4變成了9,當在進行下一次循環時n=18,m=9已經到了n<=m+9的臨界,再下一次循環n=19,m=9時判斷條件不成立循環就結束了,所以列印出了那個臨界時的n和m的值。
『陸』 求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小程序,求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判斷隨機數質數合數
你的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來判斷一個數為質數和合數,要求在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("是合數");
}
}
『拾』 java的素數和數問題
public class Number
{
int[] num;//用於存放1000~2000的所有數
private boolean prime(int num)//用於判斷數num是否為素數,若是則返回true
{
int count=0;
for(int i=2;i<(int)(Math.sqrt(num))+1;i++)
{
if(num%i==0)
count++;
}
if(count>0)
return false;
else return true;
}
public void num()//將1000~2000之間的數存入num中,並區別素數和合數
{
int[] num=new int[2000-1000+1];
for(int i=1000;i<2001;i++)
{
if(this.prime(i))
num[i-1000]=i;
else num[i-1000]=-i;
this.num=num;
}
}
public void factorization(int num)
{
int temp=num;
int n_fcr=0;
int n=(int)(Math.log(num)/Math.log(2))+1;
int[] factor=new int[n];
for(int i=2,j=0;i<1000;)
{
if(num%i==0&&(this.prime(i)))
{
factor[j]=i;
j++;
num=num/i;
}
else i++;
}
for(int i=0;i<n;i++)
if(factor[i]!=0)
n_fcr++;
System.out.print(temp+"=");
for(int i=0,j=0;i<n;i++)
{
if(factor[i]!=0)
{
if(j<n_fcr-1)
{
System.out.print(factor[i]+"*");
}
else
{
System.out.print(factor[n_fcr-1]);
}
j++;
}
}
System.out.println();
}
public void printPrime()
{
System.out.println("Prime:");
for(int i=0;i<2000-1000+1;i++)
{
if(this.num[i]>0)
System.out.print(num[i]+" ");
}
System.out.println();
}
public static void main(String args[])
{
Number number=new Number();
number.num();
number.printPrime();
for(int i=0;i<2000-1000+1;i++)
{
if(number.num[i]<0)
{
number.factorization(-number.num[i]);
}
}
}
}
不好寫,我運行了一遍,結果是對的,你看看吧,有什麼不明白的地方盡管問我