• bnuoj4220素数难题


    素数难题

    1000ms
    1000ms
    65536KB
     
    64-bit integer IO format: %lld      Java class name: Main
    Font Size:

      

    数论是数学中重要的一个分支。著名的数学家高斯曾经说过一句经典名言:数学是科学的皇后,而数论是数学的皇后。由于近代计算机科学和应用数学的发展,数论得到了广泛的应用。比如在计算方法、代数编码、组合论等方面都广泛使用了初等数论范围内的许多研究成果。在ACM/ICPC竞赛中也有很多和数论有关的知识和算法,我们学校的5l2大牛在这方面就造诣颇深。
        数论中最基本、最重要的一类数是素数。一个大于1的正整数p,它除了1和它本身之外没有因子,就被称为是素数。(如果有某个整数c使得b=ac,那么称整数a是整数b的因子或除数)2357111317这些数是素数,而比如说,12就不是,因为12=3×4。素数的重要性在于这样一个事实:每一个整数都能够表示为素数的乘积。如果一个数本身不是素数,那么可以不断地对它进行因子分解,直到所有的因子都是素数为止。例如360=32×23×5。一个非负整数(除了01),如果不是素数,就称为合数。
        素数中有很多难题,很值得研究。有两个至今尚未解决的著名问题。一个叫哥德巴赫猜想,是由哥德巴赫在1742年给欧拉的信中提出来的。他由实验观察到,任何一个大于2的偶数,都能够表示成为两个素数的和。例如,4=2+26=3+38=5+3100=97+3等等。哥德巴赫问欧拉,能不能证明这对于所有大于2的偶数都是成立的,或者证明是不成立的。欧拉没有给出回答,在那之后也还没有人给出回答。另外一个比哥德巴赫问题更加引人注目的问题是,以pp+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 ");
           else
           printf("NO ");
        }
        return 0;
    }
  • 相关阅读:
    Linux常用命令
    Springboot环境搭建_第一个例子
    java 填写一个银行卡如何判断是否真实存在
    java 理解如何实现图片验证码 傻瓜都能看懂。
    编程语言学习路线··
    他他他她她她所唱所写………
    Docker 学习笔记 (4)
    Docker 学习笔记 (3)
    Docker 学习笔记 (2)
    Docker 学习笔记 (1)
  • 原文地址:https://www.cnblogs.com/lxm940130740/p/3339179.html
Copyright © 2020-2023  润新知