zoj 1850 Factovisors

    技术2024-11-24  13

     

    Factovisors
    Time Limit: 1 Second       Memory Limit: 32768 KB

    The factorial function, n! is defined thus for n a non-negative integer: 0! = 1n! = n * (n - 1)! (n > 0)

    We say that a divides b if there exists an integer k such that k * a = b

    Input

    The input to your program consists of several lines, each containing two non-negative integers, n and m, both less than 2^31.

    Output

    For each input line, output a line stating whether or not m divides n!, in the format shown below.

    Sample Input6 96 2720 1000020 1000001000 1009

    Sample Output

    9 divides 6!27 does not divide 6!10000 divides 20!100000 does not divide 20!1009 does not divide 1000!


     

    Source: University of Waterloo Local Contest 1999.01.31

     

    求m是否能整除n! 其实原理也很简单 首先将所有的质数(16位里面的正整数)筛选出来,推荐用素数筛选法 接着就是质数分解,将m的质数分解,并且得到质数表和质数的个数 接着按照得到的质数表,对n!的阶乘进行寻找相应质数的个数,看是否多余m中的质数的个数,以此判断即可 代码不贴了,比较丑陋 

    最新回复(0)