
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语言中,用类的方法求素数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)