首页 > 编程语言 >素数--java方法

素数--java方法

时间:2022-12-09 18:24:30浏览次数:37  
标签:count java Scanner -- System int 素数 isPrime

判断素数
package T素数;

import java.util.Scanner;

public class T判断素数 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()){
int n=sc.nextInt();
System.out.println(isPrime(n)?"YES":"NO");
}
}

private static boolean isPrime(int n) {
if(n<=1)return false;
for (int i = 2; i*i <=n ; i++)if(n%i==0)//只需要判断到根号n就可以了
return false;
return true;
}
}
--------------------------------------------------------------
埃氏素数筛法
import java.util.Arrays;
import java.util.Scanner;
public class T埃氏筛法 {
//用1到sqrt(n)之内的所有素数去筛选,把素数的倍数标记为合数就可以了
    public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n=sc.nextInt();
boolean []isPrime=new boolean[n+1];//访问下标到100,需要数组到101
Arrays.fill(isPrime,true);//全部为TRUE;
isPrime[0]=false;
isPrime[1]=false;
for (int i = 2; i*i <=n ; i++) {
if(isPrime[i]==true){
for (int j = 2;i*j <=n; j++) {//防止越界;
isPrime[i*j]=false;
}
}
}
int count=0;//统计素数的个数
for (int i=2;i<=n;i++){
if(isPrime[i]==true){
System.out.print(i+" ");
count++;
}
}
System.out.println("一共有"+count+"个素数");
}
}
----------------------------------------------------------
欧拉筛法O(n)

import java.util.Scanner;

public class T欧拉筛法 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n=sc.nextInt();
int [] prime=new int[n];//找到具体素数
boolean []isp=new boolean[n+5];//标记下标对应的整数是否为某个数的倍数,倍数》2
int count=0;
for (int i=2;i<=n;i++){
if(isp[i]==false) prime[count++]=i;//把当前素数放在prime数组第count位置,然后count+1;
for (int j = 0; j <count && i*prime[j]<=n; j++) {
isp[i*prime[j]]=true;//例如12筛掉24
if(i%prime[j]==0)//24被24筛掉,36被18筛掉
break;
           }
}
for (int i = 0; i <count ; i++) {
System.out.println(prime[i]);

}
System.out.println("一共有"+count+"个素数");

}
}

 

 




















标签:count,java,Scanner,--,System,int,素数,isPrime
From: https://www.cnblogs.com/0930dong/p/16969322.html

相关文章

  • selenium获取验证码截图
    获取验证码截图代码:获取验证码代码:#!/user/bin/envpython3#-*-coding:utf-8-*-importrequestsfromseleniumimportwebdriverfromselenium.webdriver.co......
  • MySQL学习日志(建设中)
    1.前期准备1.1软件需求mysql8.0Connector/J8.0.31workbench(懒得放链接自行百度吧)一定不要下5.5或更低版本的,我折磨了宝贵的一上午,低版本bug很多,电脑win1032位的只能......
  • Docker-compose限制内存大小
    version:'3.7'services:openldap:image:10.10.xxx.54/public/openldap:1.3.0container_name:openldapenvironment:-N9E_NID=22ports:......
  • python基础-常用内置包
      内置包是python自带的一些功能模块,有需求时可以在自己文件中直接导入使用。 1.datetime包  python中的时间包,可以在业务开发中辅助我们处理时间信息;#datetime......
  • git之撤销commit文件 && 回退push的文件
    前言在日常工作之中经常遇到我们在commit(提交到本地仓库)中提交多的文件比如将我们自己的配置文件和自己私有的的依赖或者日志文件提交的本地仓库的,这是和不友好的,一旦p......
  • SDK 接入|游戏语音之“范围语音”接入实践
    语音是线上游戏用户的主要交流方式,大多数用户会通过游戏中的内置语音功能与其他玩家沟通,而一些用户在游戏没有内置语音功能的情况下,通过其他语音软件与玩家沟通。并且,游戏......
  • SpringCloud学习 系列七、EurekaServer集群创建
    系列导航SpringCloud学习系列一、前言-为什么要学习微服务SpringCloud学习系列二、简介SpringCloud学习系列三、创建一个没有使用springCloud的服务提供者和消费......
  • Winform自动更新之AutoUpdater.NET
     AutoUpdater.NET(https://github.com/ravibpatel/AutoUpdater.NET)的原理大致是从服务器上(IIS站点)下载包含更新信息的XML文件,通过下载的XML文件获取Winform等桌面......
  • angr_ctf——从0学习angr(四):库操作和溢出漏洞利用
    angr_ctf项目中后面13~17题没有新的成块的有关angr的知识了,只是对之前题目使用到的模块的扩展和补充,因此就不先列知识点和使用方式了,直接在实战中边讲解边说明库操作13_a......
  • day35-JSON&Ajax03
    JSON&Ajax034.jQuery的Ajax请求原生Ajax请求问题分析:编写原生的Ajax要写很多的代码,还要考虑浏览器兼容问题,使用不方便在实际工作中,一般使用JavaScript的框架(比如jquer......