ACM-数论
Helios_nannan
得失成败,都只对自己交代
展开
-
51nod 1106 质数检测
传送门:1106 质数检测解题思路根据质数的定义,在判断一个数n是否是质数时,我们只要用1至n-1去除n,看看能否整除即可。但我们有更好的办法。先找一个数m,使m的平方大于n,再用<=m的质数去除n(n即为被除数),如果都不能整除,则n必然是质数。如我们要判断1993是不是质数,50*50>1993,那么我们只要用1993除以<50的质数看是否能整除,若不能即为质数.AC代码#include<std原创 2016-07-18 22:44:04 · 540 阅读 · 0 评论 -
51nod 1058 N的阶乘的长度 数学
传送门:1058 N的阶乘的长度解题思路因为是要求位数,也就是相当于求:10^x = n!。根据数学知识取log10就可以了AC代码#include<stdio.h> #include<math.h> const int MAXN = 100005;int main() { int n; while(~scanf("%d",&n)) { double tmp;原创 2016-07-18 23:58:01 · 529 阅读 · 0 评论 -
求质因子
int sum=0; int tmp = n; for(int i=2;i*i<=tmp;i++) { if(tmp%i==0) { a[sum++]=i; while(tmp%i==0) tmp=tmp/i; } } if(tmp>1) a[sum++]=tmp;原创 2016-07-31 00:27:36 · 622 阅读 · 0 评论 -
hdu 2068 RPG的错排 (错排公式)
传送门:hdu 2068 RPG的错排 中文题目,不做过多的解释解题思路这里用到了一个错排公式! 什么是错排公式: n个元素理应由n!个不同的排列。如果n个元素都在不原来的位置,我们叫这种排列方式为错排! 给定任意一个整数N,求出1,2,3….N的错排个数共有多少个。 递推关系式为:D(n)=(n-1)(D(n-1)+D(n-2)) 证明如下: n 个不同元素的一个错排可由下述两个步骤原创 2016-08-02 21:32:16 · 382 阅读 · 0 评论 -
hdu 1796 How many integers can you find 容斥原理
传送门:hdu 1796 How many integers can you find题目大意在M个集合中,找到能被N整除(不包含N)的个数解题思路首先要解决这个题目要知道什么容斥定理! 我们先假设N=100,然后M=3其中M集合中的元素为{1,2,3} 如果我们直接计算N/a1 = 100,N/a2=50,N/a3 = 33,在计算前两个的时候,N/a2这么多个元素就是多余的,在计算后面两个的原创 2016-08-03 10:48:41 · 442 阅读 · 0 评论