成都创新互联网站制作重庆分公司

java里求质数的代码,java输出质数最简单的代码

java求素数代码

求1-N以内的所有素数,实现思路如下:

邯山ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!

1、 得到1到n之间的素数,存到一个ArrayList集合。

2、判断一个数是不是素数:只能被1和本身整除

说明:从2开始除,不需要到n,也就是循环条件是 n 就可以,这之间只要被整除了,那么他就不是素数了。

3、设置主函数,运行 getPrimeNumberToN获取限定范围内的素数。 

执行结果图:

扩展资料:

实现功能的编程事项:

1、模块化思想。

先拆分需求,先拆分先考虑怎么确定一个数是不是素数,然后再复用到所有。不能把方法堆到一起,否则无法复用代码。

2、注意注释。

就算是自己的测试代码,尽量写清楚注释,这样即使过了三个月,再看代码,也能清晰明了。不要觉得简单,就懒得注释。

3、注意参数命名。

从类名到方法名,再到变量名,都不能随意取名,关于这个命名,不要嫌弃长,重点是意思清楚明白。见名知意(语义化),是最好的。

java输入的一个数,求小于等于该数的所有质数(素数).

Java程序:

import java.util.Scanner;

public class Test {

public static void main(String[] args) {

Scanner scan = new Scanner(System.in);

System.out.print("请输入一个整数:");

int number = scan.nextInt();

PrimeNumber pn = new PrimeNumber();

pn.setNumber(number);

pn.printAll();

}

}

class PrimeNumber {

protected int number;

public void setNumber(int number) {

this.number = number;

}

public int getNumber() {

return this.number;

}

public boolean isPrimeNumber(int number) {

int k = (int)(Math.sqrt(number));

for(int i=2; i=k; i++) {

if(number % i == 0) {

return false;

}

}

return true;

}

public void printAll() {

for(int i=2; i=number; i++) {

if(isPrimeNumber(i)) {

System.out.println(i);

}

}

}

}

运行测试:

请输入一个整数: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

java 几个有关质数的代码

最大质因数

13195的所有质因数为5、7、13和29。600851475143最大的质因数是多少?

long i=2,n=600851475143L;

while (in){    //避免n本身就是质数,否则循环到sqrt(n)就可以了

if(n % i==0){

n=n/i;

i--;

}

i++;

}

System.out.println( i );

第10001个素数

列出前6个素数,它们分别是2、3、5、7、11和13。我们可以看出,第6个素数是13。

第10,001个素数是多少?

第1至10001都找出来了:

int a[]=new int[10001];

a[0]=2;

a[1]=3;

int n=5,k,i=2;

while (i10001){

for ( k=0;ki;k++)    if(n % a[k] ==0 ) break;

if (k ==i ) a[i++]=n;  

n+=2;

}

System.out.println(a[10000] );

java程序1到200的质数。代码如下

一个好的算法,要经的起推敲,不要只求结果

import java.util.ArrayList;

import java.util.List;

public class Primes {

public static void main(String[] args) {

// 求素数

ListInteger primes = getPrimes(200);

// 输出结果

for (int i = 0; i  primes.size(); i++) {

Integer prime = primes.get(i);

System.out.printf("%8d", prime);

if (i % 10 == 9) {

System.out.println();

}

}

}

/**

* 求 n 以内的所有素数

*

* @param n

*            范围

*

* @return n 以内的所有素数

*/

private static ListInteger getPrimes(int n) {

ListInteger result = new ArrayListInteger();

result.add(2);

for (int i = 3; i = n; i += 2) {

if (!divisible(i, result)) {

result.add(i);

}

}

return result;

}

/**

* 判断 n 是否能被整除

*

* @param n

*            要判断的数字

* @param primes

*            包含素数的列表

*

* @return 如果 n 能被 primes 中任何一个整除,则返回 true。

*/

private static boolean divisible(int n, ListInteger primes) {

for (Integer prime : primes) {

if (n % prime == 0) {

return true;

}

}

return false;

}

}

java怎么求质数(运用布尔,数组)

/**

* 0-100:是:101个数字,不是100个;

* 0与1,不是质数也不是合数:

* 以下代码写的有点冗余:只因为题目要求,布尔数组要参与运算!

* 其实一个循环就可以解决的事!

*/

public class Prime {

public static void main(String[] args) {

int arr[]=new int[101],count=0;//元素数组!

boolean[] brr=new boolean[101];//标记数组!

for(int i=0;iarr.length;i++) //循环复制!

arr[i]=i;

f:for (int i = 0; iarr.length; i++) {//判断!

if(i2)continue f;//跳过,0,1;

for(int tem=i;tem--!=2;) 

if(i%tem==0) 

continue f;

brr[i]=true;//标记

}

for (int i = 0; i  brr.length; i++) {//查看!

if(brr[i]!=false) {

count++;

System.out.print(arr[i]+" ");

}

}

System.out.println("\r\n0-100质数共:"+count+"个!");

}

}

用JAVA语言求质数

程序如下,希望有所帮助

public class Prime {

//判断质数

public static void isPrime(int num) {

int j = 2;

for (; j = Math.sqrt(num); j++) {

if (num % j == 0) {

System.err.println(num + "不是质数!");

return;

}

}

if (j Math.sqrt(num)) {

System.err.println(num + "是质数!");

return;

}

System.err.println(num + "不是质数!");

return;

}

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

System.err.println("请输入数字:");

int num = sc.nextInt();//接收输入

isPrime(num);//判断是否为质数

}

}


网站栏目:java里求质数的代码,java输出质数最简单的代码
地址分享:http://cxhlcq.com/article/hdoiee.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部