素数难题

Time Limit: 1000ms
Case Time Limit: 1000ms
Memory Limit: 65536KB

64-bit integer IO format: %lld      Java class name: Main
Submit Status
Font Size:+-
数论是数学中重要的一个分支。著名的数学家高斯曾经说过一句经典名言:“数学是科学的皇后,而数论是数学的皇后”。由于近代计算机科学和应用数学的发展,数论得到了广泛的应用。比如在计算方法、代数编码、组合论等方面都广泛使用了初等数论范围内的许多研究成果。在ACM/ICPC竞赛中也有很多和数论有关的知识和算法,我们学校的5l2大牛在这方面就造诣颇深。
数论中最基本、最重要的一类数是素数。一个大于1的正整数p,它除了1和它本身之外没有因子,就被称为是素数。(如果有某个整数c使得b=ac,那么称整数a是整数b的因子或除数)2,3,5,7,11,13,17,…这些数是素数,而比如说,12就不是,因为12=3×4。素数的重要性在于这样一个事实:每一个整数都能够表示为素数的乘积。如果一个数本身不是素数,那么可以不断地对它进行因子分解,直到所有的因子都是素数为止。例如360=32×23×5。一个非负整数(除了0和1),如果不是素数,就称为合数。
素数中有很多难题,很值得研究。有两个至今尚未解决的著名问题。一个叫哥德巴赫猜想,是由哥德巴赫在1742年给欧拉的信中提出来的。他由实验观察到,任何一个大于2的偶数,都能够表示成为两个素数的和。例如,4=2+2,6=3+3,8=5+3,…,100=97+3,…等等。哥德巴赫问欧拉,能不能证明这对于所有大于2的偶数都是成立的,或者证明是不成立的。欧拉没有给出回答,在那之后也还没有人给出回答。另外一个比哥德巴赫问题更加引人注目的问题是,以p和p+2形式出现的素数对是否是有无穷多对,在这个问题的研究上比哥德巴赫问题的进展还要少。
素数问题的研究,极大地推动了数论和数学的进步。现在我们来看一个基本的问题——素数判定。最朴素的方法是按照素数的定义来做——看它除了1和它本身之外是否还有因子,这种方法对于不太大的数是很方便的。除此之外,为了实现对大数的素性测试,数学家还提出了另外的一些素数测试方法,例如费马测试、米勒拉宾测试。
现在,请你写一个程序来判断一个数是不是素数。

Input

输入数据包含多行,每行一个数,N(1<=N<=1000)。N=0时输入结束,你的程序不需要处理它。

Sample Input

1
2
0

Sample Output

NO
YES

#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#define M 1010
using namespace std;
int main()
{
    int i,vit[1010],j,n;
    memset(vit,0,sizeof(vit));
    vit[1]=0;
    vit[2]=1;
    for(i=3; i<=M; i++)
    {
        if(i%2)
            vit[i]=1;
        else
            vit[i]=0;
    }
    for(i=3; i<=M; i+=2)
    {
        if(vit[i])
        {
            for(j=i*2; j<=M; j+=i)
                vit[j]=0;
        }
    }
    while(~scanf("%d",&n)&&n)
    {
       if(vit[n])
       printf("YES\n");
       else
       printf("NO\n");
    }
    return 0;
}

转载于:https://www.cnblogs.com/lxm940130740/p/3339179.html

bnuoj4220素数难题相关推荐

  1. 【世界数学难题】素数判定与大数因子分解问题(上)

    序言 数论中一个最基本.最古老而当前仍然受到人们重规的问题就是判别给定的整数是否素数(简称为素数判别或素性判别)和将大合数分解成素因子乘积(简称为大数分解).在历史上,这个问题曾经吸引了包括费马(Fe ...

  2. 【世界数学难题】素数判定与大数因子分解问题(下)

    6.一种概率算法 缪内的结果虽然很好,但它毕竟是依赖于一个悬而未决的假设.因而在实用中,它是不能被采用的.故我们回到勒默的结果,看看从这个结果还能引伸出什么方法来. 勒默的结果说,若n是合数,则存在a ...

  3. ny520 最大素因子 筛选法求素数

    最大素因子 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 GreyAnts最近正在学习数论中的素数,但是现在他遇到了一个难题:给定一个整数n,要求我们求出n的最大素因子 ...

  4. 数论重大突破:120年后,希尔伯特的第12个数学难题借助计算机获得解决

    来源:机器之心本文约4300字,建议阅读10分钟在解决希尔伯特第12个问题的过程中,计算机程序发挥了重要作用. [ 摘要 ] 德国数学家大卫 · 希尔伯特提出的 23 个问题对二十世纪现代数学的发展起 ...

  5. 素数与量子物理的结合能带来解决黎曼猜想的新可能吗?

    来源:中国科学院数学与系统科学研究院 翻译:墨竹 校对:杨璐 1972年,物理学家弗里曼·戴森(Freeman Dyson)写了一篇名为<错失的机会>(Missed Opportuniti ...

  6. python使用集合实现筛选法求素数-python素数筛选法浅析

    原理: 素数,指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数.在加密应用中起重要的位置,比如广为人知的RSA算法中,就是基于大整数的因式分解难题,寻找两个超大的素数然后相乘作 ...

  7. python质数判断if isprime_使用Python判断质数(素数)的简单

    这篇文章主要介绍了使用Python判断质数(素数)的简单方法讲解,经常被用来做科学计算的Python处理这种小问题当然手到擒来^_-需要的朋友可以参考下 质数又称素数.指在一个大于1的自然数中,除了1 ...

  8. 【筛素数】P1579 哥德巴赫猜想(升级版)

    https://www.luogu.com.cn/problem/P1579 考点:埃拉托斯特尼筛法 / 欧拉筛法 题目背景 1742年6月7日哥德巴赫写信给当时的大数学家欧拉,正式提出了以下的猜想: ...

  9. 1亿以内素数的个数_神奇的素数

    数学里面最有趣的问题可能就得说是素数了.世界上最难的问题很多都与素数有关,而且素数又是如此简单的一个概念,只要是学过乘除法的人都能理解什么是素数.如果评选一个非常简单但又极端复杂的数学概念,估计非素数 ...

  10. 斐波那契实现阶乘js_功能与命令式编程。 Java 8中的斐波那契,素数和阶乘

    斐波那契实现阶乘js 有多种编程风格/范例,但是两个著名的风格是Imperative和Functional . 命令式编程是最主要的范例,因为几乎所有主流语言(C ++,Java,C#)都在推广它. ...

最新文章

  1. net转java_NET转Java
  2. [LeetCode] NO. 100 Same Tree
  3. 14种东西帮你治疗口腔溃疡 - 生活至上,美容至尚!
  4. 【C#/.NET】.NET6中全局异常处理
  5. 绝地求生 android版支持蓝牙吗,《绝地求生》吃鸡必须要顶配吗?这些配置也能畅玩...
  6. 系统云服务器,系统云服务器
  7. Python模块(7)-SciPy 简易使用教程
  8. BBAug: 一个用于PyTorch的物体检测包围框数据增强包
  9. CentOS下使用Varnish为网站加速
  10. 应用安全 - 代码审计 - Python
  11. EXT2的文件系统装载之内核函数ext2_fill_super分析
  12. 让图片自适应屏幕大小
  13. XJOI一级一段题解(g++,即C++),也可视作C++算法竞赛教程
  14. 这16个数据可视化案例,惊艳了全球数据行业
  15. 关于爱情·萧伯纳名言大全
  16. 如何在微信中使用企业邮箱,企业微信邮箱密码是什么?
  17. 这些API接口,随便拿出来一个就能装逼、赚钱
  18. FAST-LIO,FAST-LIO2与FASTER-LIO
  19. 万能手机usb内窥镜软件下载_万能证件生成器手机版-万能证件生成器手机版下载 v1.0 免费版...
  20. Python环境搭建系列

热门文章

  1. ThinkPHP2.1 增加PHPCMS模板引擎,支持PC标签(get,json)
  2. jlabel字怎么变化_宝宝起名字一定要从《康熙字典》中找字!好名字来自文化的传承...
  3. SQL中的字符串函数
  4. python2.7.11 for iOS 苹果上的python27环境
  5. JavaScript闭包 懂不懂由你反正我是懂了
  6. PHP使用DES进行加密和解密
  7. Ext中Date format含义
  8. 是时候开始好好考虑自己的职业定位了
  9. Redis Sentinel实现高可用配置
  10. 错误处理之异常与返回码