java编程实现求素数个数_用java编写500到800的素数的个数 , 以下这段代码是用java编程求500到800之间素数,无错...

导航:网站首页 >

用java编写500到800的素数的个数 , 以下这段代码是用java编程求500到800之间素数,无错

用java编写500到800的素数的个数 , 以下这段代码是用java编程求500到800之间素数,无错误提示,运行之...

匿名网友:

下面只是个方法,考到你类里面就好了。

public int showMax() { int count = 0; for (int i = 500; i < 800; i++) { boolean isPrimeNumber = true; for (int j = 2; j < i; j++) { if (i % j == 0) { isPrimeNumber = false; } } if (isPrimeNumber) { count++; } } return count }...

匿名网友:

有几个错误,下面的行号是指main函数里代码的行号。

第1行,数组赋值了null,没有初始化就使用了,会抛出空异常;第8行,这个if语句应该放到for的外面,在循环里面x>=(int)Math.sqrt(i)条件是永远不会满足的,所以你的程序没有输出。

第11行,l++; 这句应该放到打印之后,为当前的数组元素赋值之后你不输出,把游标加1再输出,多蛋疼。

还有就是没必要使用数组的,把下面的代码粘到main函数里就可以运行了。

int x;for (int i = 800; i > 500; i--) {for (x = 2; x < (int) Math.sqrt(i); x++) {if (i % x == 0) {break;}}if (x >= (int) Math.sqrt(i)) {System.out.print(i + " ");}}

匿名网友:

#include"stdio.h"#include "math.h"void main(){for (int i=500;i{int s = sqrt(1.0*i);int j;for (j=2;j{if (i%j==0){break;}}if (j==s){printf("%d是素数\n",i);}}return;}

匿名网友:

public static void main(String args){int m=1;for(int i=5;i<=500;i++){int d=test(i);if(d==2)m=m*i;}System.out.println("5——500之间的质数积为"+m);}static int test(int a){int d;int c=0;for(int b=1;b<=a;b++){ if(a%b==0)c++;}d=c;return d; }我的运行结果是:5——500之间的质数积为1957207999,不知道对不对!

匿名网友:

#include //计算500-800区间内素数个数,并按从大到小的顺序进行加减间隔计算求和。

int main(){int cnt=0,sum=0,i,j,t=-1;for (i=17;i>=2;i--){for (j=2;j{if (i%j==0) break;//在i/2前只要遇到一个能除尽的数则跳出本层for循环,则j的值一定小于等于i/2}if(j>i/2) //i/2前的每个数都除过一遍且不能除尽即for循环自然结束则判断j为素数{t=-t;sum=i*t+sum;cnt++;} }printf("%d %d",cnt,sum);return 0;}判断条件的位置放错了,详见注释,上边的代码是修改后的。

这里按照原程序的计算方式,为先减后加的顺序,如2到13间的素数和为:13-11+7-5+3-2

匿名网友:

public class Test {public static void main(String args) {Random random = new Random();for (int i = 0; i int num = random.nextInt(1001);//生成随机数if (isPrime(num) {//判断 是否质数System.out.println(num + "是质数");} else {System.out.println(num + "不是质数");}}}/*** 判断质数方法* @param num* @return*/public static boolean isPrime(int num) {boolean prime = true;int limit = (int) Math.sqrt(num);for (int i = 2; i if (num % i == 0) {prime = false;break;}}return prime;}}

问题推荐

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值