最近在hdu上A题

碰到些素数问题,记录下看到的算法。

一、筛选法

题目:http://acm.hdu.edu.cn/showproblem.php?pid=2136

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.StreamTokenizer;

public class Main

{

public static void main(String[] args) throws IOException

{

StreamTokenizer st = new StreamTokenizer(new BufferedReader(

new InputStreamReader(System.in)));

int[] arr = new int[1000001];

int count = 1;

int temp;

for (int i = 2; i < 1000000; i++)

{

if (arr[i] == 0)//只用判断不被前面“筛选掉的数字”

{

temp = i;

while (temp < 1000000)//这里就是筛选数字,把i的整数倍的数字都挖掉

{                     //因为肯定有因子i,则一定不是素数。

arr[temp] = count;//此处的赋值是因为题目的要求有点小改变,筛选法只用分别出素数和非素数

temp = temp + i;

}

count++;

}

}

int n;

while (st.nextToken() != StreamTokenizer.TT_EOF)

{

n = (int) st.nval;

System.out.println(arr[n]);

}

}

}

思想很简单:

<1> 先将1挖掉(因为1不是素数)。

<2> 用2去除它后面的各个数,把能被2

整除的数挖掉,即把2的倍数挖掉。

<3> 用3去除它后面的各数,把3的倍数挖掉。

<4> 分别用5…各数作为除数去除这些数以后的各数。

上述操作需要一个很大的容器去装载所有数的集合,只要满足上述条件,即2的倍数大于1的全部置0,3的倍数大于1的全部置0,4的倍数大于1的全部置0.。。。一直到这个数据集合的末尾,这样一来不为0的数就是素数了,然后按下标在里面进行查找就好了

二、米勒拉宾算法

算法思想:http://www.cnblogs.com/skyivben/archive/2010/07/10/1775001.html

看了一下看不懂,记录下有这种算法思想。

acm素数判定 c语言,关于判断素数的一些算法相关推荐

  1. c语言怎么判断素数return1,C语言实验——判断素数(循环结构)

    C语言实验--判断素数(循环结构) Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description 从 ...

  2. C语言实验——判断素数(循环结构java)

    C语言实验--判断素数(循环结构) Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description 从 ...

  3. 【C语言】判断素数的方法

    [C语言]判断素数的方法 通过比较能被整除的除数与自身大小的关系来判断 判断整数p是否是素数: if 是大于1的正整数?是素数 :else 不是素数: 定义一个变量 i,表示除数,p能够被 i 整除. ...

  4. 代码实现:判断101-200之间有多少个素数(质数),并输出所有素数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。...

    package com.heima.Coding;/*判断101-200之间有多少个素数(质数),并输出所有素数.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明 ...

  5. java 语言如何判断素数_C语言实验之判断素数(循环结构java)方法讲解

    C语言实验之判断素数(循环结构java)方法讲解 Problem Description 从键盘上输入任意一个正整数,然后判断该数是否为素数. 如果是素数则输出"This is a prim ...

  6. C语言实验——判断素数(循环结构) -java

    Problem Description 从键盘上输入任意一个正整数,然后判断该数是否为素数. 如果是素数则输出"This is a prime." 否则输出"This i ...

  7. C语言实验——判断素数(循环结构)(Java版)

    Problem Description 从键盘上输入任意一个正整数,然后判断该数是否为素数. 如果是素数则输出"This is a prime." 否则输出"This i ...

  8. 【C语言】判断素数的算法从一般到高效

    在刚开始学习使用C语言时,通过练习编程来提高对语法的思考是一个很不错的方法.判断素数是一个非常适合刚刚开始学习的我们练习的.下面我给大家简绍几种判断素数的方法及参考代码. 一.暴力方法 在数学中我们知 ...

  9. C语言之判断素数与再见敲K

    Q1.判断素数 问题讲述:输入若干个整数,逆序输出这若干个整数中的所有素数.所谓素数,指整数在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数. Q2.再见敲K 问题描述:输入若干 ...

最新文章

  1. 学python的游戏app_Python教学软件
  2. WCF系列(四) -- 也谈序列化(上)
  3. 创业记——个人电脑、服务器选型
  4. Spring MVC与表单日期提交的问题
  5. 理解Linux和其他UNIX-Like系统上的平均负载
  6. spring cloud入门_SpringBoot 入门系列0SpringBoot与SpringCloud技术选型
  7. RunLoop总结与面试
  8. Android实例-手机安全卫士(三十五)-来电号码显示归属地
  9. 微软放弃继续开发 Visual Basic !
  10. 华为最新 5G 折叠机 MateXs 发布,起售价 19000 多元
  11. C++之log4cpp库
  12. VBA连接Excel数据库
  13. 宠物商店业务逻辑关系模型图
  14. mac显示所有文件后缀名
  15. Agile实践之Kanban工具: Wekan
  16. 程序使用微软雅黑作为默认字体在xp下的问题
  17. 好书推荐《月亮与六便士》
  18. 微软发布的 免费文件恢复工具
  19. erewrwerwer
  20. texture中的 anisotropy属性,纹理的各向异性

热门文章

  1. 【我的Android进阶之旅】异常:java.lang.NoSuchFieldError: No static field xxx of type I in class Lcom/xxx/R$id;
  2. 桌上型 桌面计算机,desktop是什么电脑
  3. 蓝桥杯集训·每日一题Week1
  4. 微信分账功能 Java 开发
  5. C语言:strlen() --- 计算字符串长度
  6. 对面向过程与面向对象的一点感悟
  7. 谷歌浏览器解决跨域问题
  8. PS/2键盘的端口详解
  9. 爬虫真的可以接单吗?爬虫实践(一)
  10. HBuilderX的下载安装和创建/运行项目