zoukankan      html  css  js  c++  java
  • 素数

    整除的定义:设a,b是两个整数,且b≠0。如果存在整数c,使a=bc,则称a被b整除,记作b|a。

    素数的定义:如果正整数a大于1且只能被1和它自己整除,则称a是素数;如果a大于1且不是素数,则称a是合数,素数也叫做质数。

    合数的一个性质:合数必有素数因子,即设a是一个合数,则存在素数p,使得p|a。

    算术基本定理:设a>1,则

                        a=p1^r1p2^r2p3^r3...pk^rk,其中p1,p2,p3...pk是不相同的素数,r1,r2....rk是正整数(其实ri也可以为0),并且不计顺序的情况下,该表示是惟一的。该表达式也叫做a的素因子分解。 

    推论:设 a=p1^r1p2^r2p3^r3...pk^rk,其中p1,p2,p3...pk是不相同的素数,r1,r2....rk是正整数,则正整数d为a的因子的充分必要条件是

                      d=p1^s1p2^s2...pk^sk,其中0<=si<=ri,i=1,2,3...k。

    例题:(1)99099有多少个正因子?

              解:99099=3^2*7*11^2*13.由推论可知99099的正因子个数为  3*2*3*2=36.(所有素因子的组合,3,7,11,13的个数取值分别为3,2,3,2。例如,3的个数可以为0,1,2。)

             (2)20!的二进制表示中从低位数起有多少个连续的0?

              解:只需求20!含有多少个因子2。不超过20的含有因子2的数(即偶数),有2,4=2^2,6=2*3,8=2^3,10=2*5,12=2^2*3,14=2*7,16=2^4,18=2*9,20=2^2*5。一共有18个,故20!含有18个因子2,则20!的二进制表示中从低位数起有18个连续的0.

    推论:任何一个正整数n,n!的二进制表示从最低位数起,连续0的个数等于n!含有多少个因子2。

    推论:如果a是一个合数,则a必有一个小于等于√a ̄的素因子。

    记P(n)为小于等于n的素数个数,则有P(100)=25,P(10^3)=(145~168),P(10^4)=(1086~1229),P(10^5)=(8686~9592),P(10^6)=(72382~78498),P(10^7)=(620421~6644579)。

    素数的筛法(埃拉托尼斯筛法)

    代码实现:

    #include<stdio.h>
    #include<string.h>
    #define maxn 100000
    int isprime[maxn],prime[maxn],nprime;
    int main()
    {
        __int64 i,j;
        nprime=0;
        memset(isprime,1,sizeof(isprime));
        isprime[1]=0;
        isprime[0]=0;
        for(i=2;i<=maxn;i++)
        {
            if(isprime[i])
            {
                prime[nprime++]=i;
                for(j=i*i;j<maxn;j+=i)
                    isprime[j]=0;
            }
        }
        for(int k=0;k<nprime;k++)
            printf("%d ",prime[k]);
        return 0;
    }

     数a和b互素的充分必要条件是存在整数x和y使得xa+yb=1.

  • 相关阅读:
    DOM、Window对象操作
    JavaScript基础
    关于样式表的两个练习
    css样式表
    表单
    HTML的格式、内容容器、表格标签
    C#部分的总结
    Android自定义View之音频条形图
    String, StringBuilder, StringBuffer问题
    详解Java中ArrayList、Vector、LinkedList三者的异同点(转)
  • 原文地址:https://www.cnblogs.com/lyf123456/p/3403745.html
Copyright © 2011-2022 走看看