acm素数判定 c语言,关于判断素数的一些算法
最近在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语言,关于判断素数的一些算法相关推荐
- c语言怎么判断素数return1,C语言实验——判断素数(循环结构)
C语言实验--判断素数(循环结构) Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description 从 ...
- C语言实验——判断素数(循环结构java)
C语言实验--判断素数(循环结构) Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description 从 ...
- 【C语言】判断素数的方法
[C语言]判断素数的方法 通过比较能被整除的除数与自身大小的关系来判断 判断整数p是否是素数: if 是大于1的正整数?是素数 :else 不是素数: 定义一个变量 i,表示除数,p能够被 i 整除. ...
- 代码实现:判断101-200之间有多少个素数(质数),并输出所有素数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。...
package com.heima.Coding;/*判断101-200之间有多少个素数(质数),并输出所有素数.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明 ...
- java 语言如何判断素数_C语言实验之判断素数(循环结构java)方法讲解
C语言实验之判断素数(循环结构java)方法讲解 Problem Description 从键盘上输入任意一个正整数,然后判断该数是否为素数. 如果是素数则输出"This is a prim ...
- C语言实验——判断素数(循环结构) -java
Problem Description 从键盘上输入任意一个正整数,然后判断该数是否为素数. 如果是素数则输出"This is a prime." 否则输出"This i ...
- C语言实验——判断素数(循环结构)(Java版)
Problem Description 从键盘上输入任意一个正整数,然后判断该数是否为素数. 如果是素数则输出"This is a prime." 否则输出"This i ...
- 【C语言】判断素数的算法从一般到高效
在刚开始学习使用C语言时,通过练习编程来提高对语法的思考是一个很不错的方法.判断素数是一个非常适合刚刚开始学习的我们练习的.下面我给大家简绍几种判断素数的方法及参考代码. 一.暴力方法 在数学中我们知 ...
- C语言之判断素数与再见敲K
Q1.判断素数 问题讲述:输入若干个整数,逆序输出这若干个整数中的所有素数.所谓素数,指整数在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数. Q2.再见敲K 问题描述:输入若干 ...
最新文章
- 学python的游戏app_Python教学软件
- WCF系列(四) -- 也谈序列化(上)
- 创业记——个人电脑、服务器选型
- Spring MVC与表单日期提交的问题
- 理解Linux和其他UNIX-Like系统上的平均负载
- spring cloud入门_SpringBoot 入门系列0SpringBoot与SpringCloud技术选型
- RunLoop总结与面试
- Android实例-手机安全卫士(三十五)-来电号码显示归属地
- 微软放弃继续开发 Visual Basic !
- 华为最新 5G 折叠机 MateXs 发布,起售价 19000 多元
- C++之log4cpp库
- VBA连接Excel数据库
- 宠物商店业务逻辑关系模型图
- mac显示所有文件后缀名
- Agile实践之Kanban工具: Wekan
- 程序使用微软雅黑作为默认字体在xp下的问题
- 好书推荐《月亮与六便士》
- 微软发布的 免费文件恢复工具
- erewrwerwer
- texture中的 anisotropy属性,纹理的各向异性
热门文章
- 【我的Android进阶之旅】异常:java.lang.NoSuchFieldError: No static field xxx of type I in class Lcom/xxx/R$id;
- 桌上型 桌面计算机,desktop是什么电脑
- 蓝桥杯集训·每日一题Week1
- 微信分账功能 Java 开发
- C语言:strlen() --- 计算字符串长度
- 对面向过程与面向对象的一点感悟
- 谷歌浏览器解决跨域问题
- PS/2键盘的端口详解
- 爬虫真的可以接单吗?爬虫实践(一)
- HBuilderX的下载安装和创建/运行项目