十一、大数问题(大素数,阶乘)
文章平均质量分 81
程序员的冷浪漫
爱好coding对世界充满好奇心
展开
-
求n!最右端非 0的数字!!hdu Last non-zero Digit in N!
首先引用下leemars的报告:这道题要求N!的最后一个非0数字是多少,如果用一般作法,先统计2和5的个数,然后补乘2,得到的将是TLE。所以还需要再做简化:为了把0去掉,我们把所有的因数2和5都提出来,放到最后再处理。N!中的N个相乘的数可以分成两堆:奇数和偶数。偶数相乘可以写成(2^M)*(M!),M=N DIV 2。M!可以递归处理,因此现在只需讨论奇数相乘。考虑原创 2012-10-05 09:33:19 · 2075 阅读 · 0 评论 -
判定一个大数是否素数
可以用Rabin-Miller检验法,判定一个大数是否素数Rabin -Miller算法是典型的验证一个数字是否为素数的方法。判断素数的方法是Rabin-Miller概率测试,那么他具体的流程是什么呢。假设我们要判断n是不是素数,首先我们必须保证n 是个奇数,那么我们就可以把n 表示为 n = (2^r)*s+1,注意s 也必须是一个奇数。然后我们就要选择一个随机的整数a (1原创 2012-10-12 09:25:37 · 3213 阅读 · 0 评论 -
Nyoj 520 最大素因子
最大素因子时间限制:1000 ms | 内存限制:65535 KB难度:2描述GreyAnts最近正在学习数论中的素数,但是现在他遇到了一个难题:给定一个整数n,要求我们求出n的最大素因子的序数,例如:2的序数是1,3的序数是2,5的序数是3,以此类推. 研究数论是需要很大的耐心的,为了惩罚那些没有耐心读完题目的童鞋,我们规定:1的最大素因子序数是0.原创 2013-06-21 14:52:58 · 1116 阅读 · 0 评论 -
java 处理大数据
import java.math.*;import java.util.*;public class Main{ public static void main(String args[]) { BigInteger a[]=new BigInteger [1002] ; a[1]=new BigInteger("1"); a原创 2013-08-10 11:51:51 · 1016 阅读 · 0 评论