
正文
java代码质数 质数的java表达式
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
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] );
相关问答
Q1: 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;
}
}
Q2: 用JAVA编写程序:“判断n是不是质数”
java编程,判断n不是质数,循环让n除以n一半以下的数,有余数就不是质数,没有就是质数,方法如下:
public class TestA {
public static void main(String[] args){
//定义一个数
int n=101;
//遍历这个数的n/2+1次,除以n一半以下的数都除不尽就是质数
for(int x=2;x=(n/2+1);x++){
//n%x取余等于0就不是质数,则退出循环
if(n%x==0){
System.out.println(n+"不是质数!");
break;
}
//x等于最大值,可知n是质数
if(x==(n/2+1)){
System.out.println(n+"是质数!");
}
}
}
}
结果:
101是质数!
Q3: 用java程序求出1到10000之间质数的和,并说出为什么要这样编写。
因为质数是一个正整数不能被除了1和自身以外的数整除,就叫做质数(1不是质数)
所以根据定义从2到10000,每个数除以2到其自身减1的数,如果能被整除(等于0)则不是质数,否则就是质数
完整的Java程序如下(每句都加了注释)
public class SuShuHe{
public static void main(String[] args){
int sum=0,j;//定义整型变量j,整型变量sum用于存放质数和,并赋sum初值0
for(int i=2;i=10000;i++){//for_i循环从2到10000
for(j=2;ji;j++) //for_j循环从2到i-1
if(i%j==0)//判断i是否能被j整除(余数等于0)
break;//如果能跳出for_j循环
if(i==j){ //如果没有跳出for_j循环,那么for_j循环执行完时,j等于i,那么i就是质数
sum=sum+i;//把质数加到求质数和的变量sum中
}
}
System.out.println("10000以内所有质数之和为:"+sum);//输出10000以内所有质数和
}
}
Q4: 用 java 怎么判断一个数是否为质数?
质数java代码质数:
public static boolean isPrime(int N){if( N 2 ) return false;
for( int i = 2 ; i*i = N; i++){if( N % i == 0) return false;return true;}
JAVA 编程方法java代码质数:
public static void main(String[] args) {// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);for(int i=0;i100;i++){
System.out.print("请输入数字java代码质数:");int num1 = input.nextInt();if(num1==2||num1==3){
System.out.println(num1+"是质数");}else if(num1%2!=0(num1+1)%2==0){
System.out.println(num1+"是质数");}else{System.out.println(num1+"不是质数");
java代码质数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于质数的java表达式、java代码质数的信息别忘了在本站进行查找喔。







