编写一Java程序 查找1—100之间的素数并将其运行结果输出

编写一Java程序 查找1—100之间的素数并将其运行结果输出,第1张

public static void main(String[] args) {

                int i,j;

for(i=1;i<=100;i++)

{

for(j=2;j<i;j++)

{

if(i%j==0)

{

break;

}

}

if(i==j)

{

Systemoutprintln(i);

}

}

}

你的逻辑有问题,好好看看。if(xx){xxx}else{xxxx}这个逻辑不对

你自己看,如果输入2,2的平方根比2小吧,你的下面的循环就不成立,所以直接结束。

如果输入 9,9的平方根是3,当i=2时,2《=3,先走if条件(9%2!=0)直接进入else{XX},当然会输出9不是素数,然后break。

你还是把循环知识再看看吧。

看上一回答,正确代码在那里,嫌我啰嗦直接跳过。

判断素数方法,你供参考,代码如下:

public class SuNum {

public static void main(String[] args) {

if(getResult(4)){

Systemoutprintln("素数");

}else{

Systemoutprintln("非素数");

}

}

public static boolean getResult(int num) {

boolean isPrime = true; // 定义布尔变量判断是否素数是:true;否:false

int k = (int) Mathsqrt(num);

for (int j = 2; j <= k; j++) {

if (num % j == 0) {

isPrime = false; // 如果能够有数整除num,那么就不是素数

}

}

if (isPrime) {

isPrime = true;

}

return isPrime;

}

}

具我了解最小的素数是2的说,举例来说,求100以内的素数。

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。

所以我认为是这样的,虽然有些偷懒。

public class Test{

public static void main(String[] args) {

int s=1,i;

Systemoutprint("2 ");//请不要在意这里。。。

for (int n=3; n<=100;n+=2){

for (i=3;i2<=n;i++){

if(n%i==0)

break;

}

if(i2>n)

{

s++;

Systemoutprint(n+" ");

}

}

}

}

t=1 不是关键

i=1,这个嘛,就是问题了,

if(val%i==0) 当i=1时,余数一定为0,所以返回false,即是说,当 val 除以 1 时,认为可以整除,进而认为不是素数,

程序没有终止运行,而是认为从1到1000中,所有的数都不是素数,(因为能被1整除)

这样显然是错的。

所以判断是否为素数,除数应该从2开始

package test;

public class SumPrime {

private static final int MAX=100;

public static void init(int[] num)//定义数组,里面装从1到100

{

int i=0;

for(;i<MAX;i++)

{

num[i]=i+1;

}

}

public static int count(int[] num)//在程序运行后,计算素数个数

{

int n=0,i=0;

for(;i<MAX;i++)

{

if(num[i]!=0)//非素数将被置零

n++;

}

return n;

}

public static void printf(int[] num)//输出所有素数,每10个转行一次

{

int i=0,n=0;

for(;i<MAX;i++)

if(num[i]!=0)

{

Systemoutprint(num[i]+" ");

n++;

if(n%10==0)

Systemoutprintln();

}

}

public static void main(String[] args)//主方法

{

int i=2,j=1;

int count;

int[] numbers = new int[MAX];

init(numbers);

while (j<MAX)

{

if(numbers[j]!=0)

while (i<MAX)

{

if(numbers[i]!=0)

{

if(numbers[i]%numbers[j]==0)

numbers[i]=0;//如果不是素数,置零

}

i++;

}

j++;

i=j+1;

}

count=count(numbers);

printf(numbers);

Systemoutprintln();

Systemoutprintln("ok,发现了"+count+"个素数");

}

}

楼主加分!

import javautilScanner;

public class test {

public static void main(String[] args) {

Systemoutprintln("请任一输入两个数(用空格隔开),我们会求出这区间内的所有素数,-->");

Scanner input = new Scanner(Systemin);

int max = inputnextInt();

int min = inputnextInt();

if (max < min) {

int temp = max;

max = min;

min = temp;

}

for (int i = min; i < max; i++) {

boolean isSuShu = true;

for (int j = 2; j <= Mathsqrt(i); j++) {

if (i % j == 0) {

isSuShu = false;

break;

}

}

if (isSuShu) {

Systemoutprint(i+" ");

}

}

}

}

/

需求: 求101-200之内的素数

/

public class Demo3 {

public static void main(String[] args) {

// 内循环判断是否为素数,外循环控制打印

int num, i;

int count = 0, sum = 0;

for (num = 101; num <= 200; num++) {

for (i = 2; i < num; i++) {

if (num % i == 0) {

break;

}

}

if (num == i) {

sum += num;

count++;

Systemoutprint(num + "\t");

if (count % 5 == 0) {

Systemoutprintln();

}

}

}

Systemoutprintln();

Systemoutprintln("101到200之间所有素数的和为" + sum);

}

}

1、java介绍:Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

2、研发背景:Java是由Sun Microsystems公司推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称。Java由James Gosling和同事们共同研发,并在1995年正式推出。Java最初被称为Oak,是1991年为消费类电子产品的嵌入式芯片而设计的。1995年更名为Java,并重新设计用于开发Internet应用程序。

3、技术优势:与传统程序不同,Sun 公司在推出 Java 之际就将其作为一种开放的技术。全球数以万计的 Java 开发公司被要求所设计的 Java软件必须相互兼容。“Java 语言靠群体的力量而非公司的力量”是Sun公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同。

4、语言起源:Java平台和语言最开始只是SUN公司在1990年12月开始研究的一个内部项目。SUN公司的一个叫做帕特里克·诺顿的工程师被自己开发的C和C语言编译器搞得焦头烂额,因为其中的API极其难用。帕特里克决定改用NeXT,同时他也获得了研究公司的一个叫做“Stealth 计划”的项目的机会。

以上就是关于编写一Java程序 查找1—100之间的素数并将其运行结果输出全部的内容,包括:编写一Java程序 查找1—100之间的素数并将其运行结果输出、java求素数问题、Java语言中,用类的方法求素数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10180996.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存