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]);
}
}
}
}
不好写,我运行了一遍,结果是对的,你看看吧,有什么不明白的地方尽管问我