合数java
❶ 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());
}
}