
数论
文章平均质量分 71
v5zsq
新的一天,新的不会
展开
-
POJ 1218 THE DRUNK JAILER(数论)
Description 一个监狱看守员喝醉了酒,于是把监狱每扇门都打开(假设有n扇门);然后再从1号门开始,隔一扇关一个门(把2的倍数的门关掉);接着再从1号门开始,隔2扇操作一个门(操作3的倍数的门,原来是开的关掉,关着的则打开)。这样一直操作到n的倍数,问最后有多少扇门是打开的。这个也可以叫关灯问题:有n个灯,分别由n个开关控制,拨一下开关则可以改变灯的状态(开->关 关->开)。初始状态灯原创 2015-06-21 10:26:27 · 961 阅读 · 0 评论 -
POJ 1183 反正切函数的应用(数论)
Description arctan(1/a)=arctan(1/b)+arctan(1/c) 其中a,b和c均为正整数。 对于每一个给定的a(1 Input 输入文件中只有一个正整数a,其中 1 Output 输出文件中只有一个整数,为 b+c 的值。 Sample Input 1 Sample Output 5 Solution 1/a = (1/b + 1/c)/原创 2015-06-20 19:10:28 · 1175 阅读 · 2 评论 -
POJ 1061 青蛙的约会(一元线性同余方程)
Description 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的。但是除非这两只青蛙在同一时间跳到同一点上,不然是永远都不可能碰面的。原创 2015-06-20 14:11:35 · 916 阅读 · 0 评论 -
POJ 1338 Ugly Numbers(数论)
Description 定义一种集合,使得其中的元素的素数因子只能是2,3,5 即:1, 2, 3, 4, 5, 6, 8, 9, 10, 12, … 要求这个集合的第n个数是多少 Input 多次查询,每次一个整数n(nOutput 对于每次查询,输出第n个ugly number Sample Input 1 2 9 0 Sample Output 1 2 10原创 2015-06-21 19:48:37 · 737 阅读 · 0 评论 -
POJ 1423 && HDU 1018 Big Number(数论)
Description 给出一个数字N,求N!的结果的位数 Input T组用例,每组一个整数N(1Output 对于每组用例,输出其阶乘的位数 Sample Input 2 10 20 Sample Output 7 19 Solution 首先要求一个数字有多少位,可以用(int)log10(num)+1,这样就求出num有多少位 数N可以到10^7这么大,直接暴原创 2015-08-24 10:22:23 · 461 阅读 · 0 评论 -
POJ 1595 && HDU 1319 Prime Cuts(数论)
Description 给定你一个数n,让你求出1-n内有多少个素数,再给你一个数d,如果2*d大于素数的个数则全部输出;否则,如果个数为单数,输出2*d-1个并且以中间那个素数为中心分别向两边输出d-1个;如果偶数个,输出2*d个,也是以中间那个素数为中心向两边扩展 Input 多组输入,每组用例包括两个数n和d,以文件尾结束输入 Output 对于每组用例,按题目要求输出对应素数,每原创 2015-08-25 10:40:06 · 654 阅读 · 0 评论 -
POJ 1775 Sum of Factorials(数论)
Description 判断一个数是否能够被表示为多个数阶乘的和 Input 多组输入,每组一个非负数n(nOutput 对于每组输入,判断其是否能被表示为多个阶乘的和,能则输出YES,不能则输出NO Sample Input 9 -1 Sample Output YES Solution 因为1!+2!+3!Code#includeint main(){原创 2015-08-25 13:00:32 · 875 阅读 · 0 评论 -
POJ 2262 Goldbach's Conjecture(数论)
Description 输入一个不小于6的合数,把它表示成两个质数的和,如果有多个,输出相差最大的一组 Input 多组输入,每组用例一个合数,以0结束输入 Output 对于每组用例,用两个相差最大的质数和来表示此合数,如果不存在,则输出Goldbach’s conjecture is wrong. Sample Input 8 20 42 0 Sample Output原创 2015-08-27 09:31:11 · 662 阅读 · 0 评论 -
POJ 2247 && HDU 1058 Humble Numbers(数论)
Description 定义一种集合,使得其中的元素的素数因子只能是2,3,5 ,7 即:11, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 24, 25, 27, … 要求这个集合的第n个数是多少 Input 多组输入,每组用例一个整数n表示查询该集合第n个元素,以n=0结束输入 Output 对于每组用例,输出原创 2015-07-09 11:14:44 · 552 阅读 · 0 评论 -
POJ 2545 && HDU 3199 Hamming Problem(数论)
Description 给出三个质数,求这素因子只有这三个质数的数中第k大的 Input 输入包括四个整数,前三个为三个质数a,b,c,第四个为查询数n Output 输出素因子只有这三个质数中第n大的数 Sample Input 7 13 19 100 Sample Output 26590291 Solution 这个集合是通过集合里的每一个数 ×a,×b,×c来扩展的,原创 2015-07-11 10:44:23 · 602 阅读 · 0 评论 -
POJ 2551 Ones(数论)
Description 找出一个数的由1组成的最小倍数(10进制),输出其倍数的位数 Input 多组输入,每组一个整数n,以文件尾结束 Output 对于每组用例,输出其由1组成的最小倍数的位数 Sample Input 3 7 9901 Sample Output 3 6 12 Solution 直接暴力会超时,稍微优化一下即可 其实根据(a+b)%d=(a原创 2015-08-28 09:31:18 · 438 阅读 · 0 评论 -
POJ 2909 && HDU 1397 Goldbach's Conjecture(数论)
Description 给出一个偶数,要求在这个偶数的范围内,有几对素数和是等于这个偶数的,注意素数对的不重复性 Input 多组输入,每组用例一个偶数n表示查询数,以n=0结束输入 Output 对于每组用例,输出组成该偶数的素数对对数 Sample Input 6 10 12 0 Sample Output 1 2 1 Solution 简单的数论题,直接暴力过原创 2015-08-29 08:29:37 · 654 阅读 · 0 评论 -
POJ 3518 Prime Gap(数论)
Description 判断输入的n是否为素数,如果是素数的话,直接输出0,如果不是素数的话找到两个连续的素数,分别大于n和小于n输出这两个素数的差就可以了 Input 多组用例,每组用例一个整数n,以0结束输入 Output 对于每组用例,如果n是素数则输出0,如果不是则输出连续的两个素数分别大于和小于n Sample Input 10 11 27 2 492170 0原创 2015-08-30 08:48:36 · 640 阅读 · 0 评论 -
POJ 3252 Round Numbers(数论)
Description 问区间[a,b]中,有多少个数化成二进制后,0比1多 Input 两个整数a,b Output 输出区间[a,b]中有多少个数的二进制形式0比1多 Sample Input 2 12 Sample Output 6 Solution 以110100为例,先计算小于100000的有多少个,c(5,2)+c(5,1)。还需要计算100000~110100之原创 2015-07-13 09:09:20 · 478 阅读 · 0 评论 -
POJ 3286 How many 0's?(数论)
Description 给两个32位无符号型整数n和m,保证mInput 多组输入,每组用例两个无符号整形m和n,以-1 -1结束输入 Output 对于每组用例,输出区间[m,n]中所有数所包含0的个数 Sample Input 10 11 100 200 0 500 1234567890 2345678901 0 4294967295 -1 -1 Sample Out原创 2015-08-30 08:42:56 · 526 阅读 · 0 评论 -
POJ 1519 && HDU 1013 Digital Roots(数论)
Description 数字根:如果把一个大数的各位数字相加得到一个和,再把这个和的各位数字相加又得一个和,再继续作数字和,直到最后的数字和是个位数为止。现给出一个整数,输出其数字根 Input 多组用例,每组一个整数n,以n=0结束输入 Output 对于每组输入,输出n的数字根 Sample Input 24 39 0 Sample Output 6 3 Soluti原创 2015-08-31 08:38:19 · 527 阅读 · 0 评论 -
CodeForces 535 B.Tavas and SaDDas(数论)
Description 求出1~n内只包含4,7的数字有几个 Input 一个整数n Output 输出1~n内只包含4,7的数字个数 Sample Input 77 Sample Output 6 Solution 枚举数字的位数,根据每位取值的可能性递推求解 Code#include<stdio.h>int main(){ int n;...原创 2015-09-02 08:59:48 · 1072 阅读 · 0 评论 -
HDU 5288 OO’s Sequence(数论)
Description 给一个序列,定义函数f(l ,r) 为区间[l ,r] 中的数ai不是在这个区间其他任意数aj的倍数,求所有f(l,r)之和 Input 第一行为序列长度n,第二行为n个整数表示这个序列 Output 输出这个序列所有f(l,r)之和 Sample Input 5 1 2 3 4 5 Sample Output 23 Solution 对于每一个数a原创 2015-09-02 09:00:44 · 456 阅读 · 0 评论 -
POJ 2142 && HDU 1356 The Balance(一元线性同余方程)
Description 给出两种质量的砝码,和一件物品,问要多少砝码能称出物品,砝码的个数满足两种砝码的数量和尽量小,如果还有多解满足两种砝码的总质量最少 Input 多组用例,每组用例包括三个整数a,b和d分别表示两种砝码的质量以及物品的质量,以0 0 0结束输入 Output 对于每组用例,输出能称出物品质量的砝码个数,砝码的个数满足两种砝码的数量和尽量小,如果还有多解满足两种砝码的原创 2015-09-03 08:54:18 · 1181 阅读 · 0 评论 -
POJ 2891 Strange Way to Express Integers(中国剩余定理)
Description 给出n个模方程组:x mod ai = ri。求x的最小正值。如果不存在这样的x,那么输出-1 Input 多组输入,每组用例第一行为方程组方程个数n,之后n行每行两个整数ai和ri分别被表示模数和余数,以文件尾结束输入 Output 对于每组用例,输出最小的正值x,如果不存在则输出-1 Sample Input 2 8 7 11 9 Sample Ou原创 2015-09-03 08:55:05 · 638 阅读 · 0 评论 -
POJ 3090 Visible Lattice Points(欧拉函数)
Description 给出一个n*n的网格矩阵,问从(0,0)点能够看到的点数 Input 第一行为用例组数T,之后T行每行一组用例为一整数n Output 对于每组用例,输出(0,0)点能够看到的点数 Sample Input 4 2 4 5 231 Sample Output 1 2 5 2 4 13 3 5 21 4 231 32549 Solution原创 2015-09-04 08:29:31 · 586 阅读 · 0 评论 -
POJ 1284 Primitive Roots(欧拉函数)
Description 定义一个数p的原根x:{x^i=1,i=1,2,…,p-1}={1,2,…,p-1},先给出素数p,求p的原根个数 Input 多组输入,每组用例占一行为一素数p,以文件尾结束输入 Output 对于每组用例,输出p的原根个数 Sample Input 23 31 79 Sample Output 10 8 24 Solution 此处用到一个原创 2015-09-04 08:30:47 · 522 阅读 · 0 评论 -
POJ 1730 Perfect Pth Powers(数论)
Description 如果一个数x可以被表示成b^p的形式,则称其为一个完美p次方数,先给出x,求最大p使得x是一个完美p次方数 Input 多组输入,每组一个整数x,以x=0结束输入 Output 对于每组输入,输出最大的p使得x是一个完美p次方数 Sample Input 17 1073741824 25 0 Sample Output 1 30 2 Solut原创 2015-09-03 08:53:48 · 838 阅读 · 0 评论 -
POJ 2773 Happy 2006(数论)
Description 给出n和k求第k个与n互素的数 Input 多组输入,每组用例占一行包括两个整数n和k,以文件尾结束输入 Output 对于每组用例,输出第k个与n互素的数 Sample Input 2006 1 2006 2 2006 3 Sample Output 1 3 5 Solution 由gcd(a,b)=gcd(a+k*b,b)得如果a和b互素,原创 2015-09-04 08:29:01 · 735 阅读 · 0 评论 -
POJ 1365 Prime Land(分解质因数)
Description 给出一个数num的质因数分解形式,输出num-1的质因数分解形式 Input 多组输入,每组用例占一行,输入形式为p1 k1 p2 k2……pn kn(num=p1^k1*p2^k2*……*pn^kn),以0结束输入 Output 对于每组用例,输出num-1的素因数分解形式(同输入形式) Sample Input 17 1 5 1 2 1 509 1 5原创 2015-09-04 08:30:14 · 992 阅读 · 0 评论 -
HDU 1215 七夕节(因子和)
Description 输出一个数的所有因子和(不包括自身) Input 输入数据的第一行是一个数字T(1Output 对于每组测试数据,请输出一个代表输入数据N的另一半的编号. Sample Input 3 2 10 20 Sample Output 1 8 22 Solution 因为T非常大,所以首先应该预处理出500000以内所有数的因子和,然后O(1)查询原创 2015-09-04 08:32:23 · 622 阅读 · 0 评论 -
HDU 5308 I Wanna Become A 24-Point Master(模拟+数论)
Description 给出n个数字n,要把所有数字用完,使用+-*/最后变为24,中间运算可以有有浮点数 Input 多组用例,每组一个整数n,以文件尾结束输入 Output 对于每组用例,如果能运算出24点则输出运算过程,否则输出-1 Sample Input 4 Sample Output 1 * 2 5 + 3 6 + 4 Solution 打表。。。 Code原创 2015-09-03 08:14:31 · 648 阅读 · 0 评论 -
POJ 2115 C Looooops(一元线性同余方程)
Description 问循环语句for (variable = A; variable != B; variable += C);被执行的次数x(结果mod 2^k) Input 多组输入,每组用例占一行包括四个整数A,B,C和k,以0 0 0 0结束输入 Output 对于每组用例,输出循环次数x,如果是死循环则输出FOREVER Sample Input 3 3 2 16 3原创 2015-09-04 08:30:01 · 589 阅读 · 0 评论 -
POJ 2034 Anti-prime Sequences(数论+dfs)
Description 求n到m的一个排列,满足相邻的2个,3个……d个数的和都不为素数(都要满足) Input 多组输入,每组用例占一行包括三个整数n,m,d,以0 0 0结束输入 Output 对于每组用例,输出一个满足条件的排列,如果不存在这样的排列则输出No anti-prime sequence exists. Sample Input 1 10 2 1 10 3 1原创 2015-09-04 08:30:34 · 688 阅读 · 0 评论 -
CodeForces 558 C.Amr and Chemistry(数论+位运算)
Description n个数,每个数可以进行两次操作,第一种操作是翻倍,第二种操作是减半(取整),问最少操作数使这n个数变成同一个数 Input 第一行为一个整数n,第二行为n个整数 Output 输出最少操作数 Sample Input 3 3 5 6 Sample Output 5 Solution 可以除以二或者乘以二,就相当于位运算的右移和左移。用两个数组,vis...原创 2015-07-27 11:33:29 · 932 阅读 · 0 评论 -
POJ 2407 Relatives(欧拉函数)
Description 求一个数的欧拉函数值 Input 多组输入,每组一个正整数n,以0结束输入 Output 对于每组输入,输出n的欧拉函数值 Sample Input 7 12 0 Sample Output 6 4 Solution 直接套欧拉函数公式,即将n素分解后有n=p1^k1*p2^k2*…pm^km,则euler(n)=n(1-1/p1)(1-1/p2原创 2015-09-03 08:53:31 · 1239 阅读 · 0 评论 -
HDU 3579 Hello Kiki(中国剩余定理)
Description 给出n个模方程组:x mod ai = ri。求x的最小正值。如果不存在这样的x,那么输出-1 Input 多组输入,第一行为用例组数T,每组用例第一行为方程组方程个数n,之后n行每行两个整数ai和ri分别被表示模数和余数 Output 对于每组用例,输出最小的正值x,如果不存在则输出-1 Sample Input 2 8 7 11 9原创 2015-09-03 08:55:27 · 1443 阅读 · 0 评论 -
POJ 2417 Discrete Logging(高次同余方程-Baby-Step,Giant-Step)
Description 给出P,B,N(P是素数),解方程B^L = N (mod P) Input 多组输入,每组用例占一行包括三个整数P,B,N,以文件为结束输入 Output 对于每组用例,如果方程有解则输出最小解,否则输出no solution Sample Input 5 2 1 5 2 2 5 2 3 5 2 4 5 3 1 5 3 2 5 3 3 5 3原创 2015-08-26 17:21:03 · 603 阅读 · 0 评论 -
POJ 2478 Farey Sequence(欧拉函数)
Description 给出n,求小于等于n的数中互素的整数对数 Input 多组输入,每组用例输入一整数n,以n=0结束输入 Output 对于每组输入,输出小于等于n的数中互素的整数对数 Sample Input 2 3 4 5 0 Sample Output 1 3 5 9 Solution 问题转化为前n项欧拉函数求和,注意此时euler[1]=0 C原创 2015-09-04 08:29:16 · 689 阅读 · 0 评论 -
HDU 1060 Leftmost Digit(数论)
Description 给出一整数n,输出n^n的最高位 Input 第一行为用例组数T,每组用例占一行为一整数n Output 对于每组用例,输出n^n的最高位 Sample Input 2 3 4 Sample Output 2 2 Solution 这道题直接算肯定不行,也不能用快速幂之类的算法,所以只能找公式了,显然n可以表示成此形式,我们要求的即为x 同时我原创 2015-09-05 23:09:51 · 477 阅读 · 0 评论 -
HDU 1085 Holding Bin-Laden Captive!(数论+生成函数)
Description给a个1,b个2,c个5,问它们不能组成的最小正整数是谁Input多组用例,每组用例占一行包括三个整数a,b,c,以0 0 0结束输入Output对于每组用例,输出给出的数不能组成的最小正整数Sample Input1 1 3 0 0 0Sample Output4Solution1任意一个大于等于555的正整数显然可以被表示成5...原创 2015-09-05 23:10:54 · 465 阅读 · 0 评论 -
HDU 1021 Fibonacci Again(数论)
Description 给出一序列f(n)满足f(n)=f(n-1)+f(n-2),f(0)=7,f(1)=11,现在给出一些询问,每次询问输入n问f(n)是否能被3整除 Input 多组输入,每组用例占一行为一整数n,以文件尾结束输入 Output 对于每组用例,如果f(n)%3=0则输出yes,否则输出no Sample Input 0 1 2 3 4 5 Sampl原创 2015-09-05 23:07:42 · 528 阅读 · 0 评论 -
HDU 1019 Least Common Multiple(数论)
Description 给出n个数,输出这n个数的最小公倍数 Input 第一行为用例组数T,每组用例占一行,首先输入一个整数n,之后输入n个整数 Output 对于每组用例,输出这n个数的最小公倍数 Sample Input 2 3 5 7 15 6 4 10296 936 1287 792 1 Sample Output 105 10296 Solution 数据量原创 2015-09-05 23:07:05 · 498 阅读 · 0 评论 -
CodeForces 588 B.Duff in Love(数论)
Description 对于一个整数x,如果对于任意a>1都有x%(a^2)!=0,那么称x为可爱数,先给出一整数n,输出n的因子中最大的可爱数 Input 一个整数n Output n的因子中最大的可爱数 Sample Input 10 Sample Output 10 Solution 简单数论,将n分解素因子得到n=p1^k1*p2^k2*…pm^km,那么答案即...原创 2015-10-19 14:31:20 · 986 阅读 · 0 评论 -
POJ 2800 Joseph's Problem(数论)
Description 求 Input 两个整数n和k(1<=n,k<=1e9) Output 输出 Sample Input 5 3 Sample Output 7 Solution 暴力显然超时,n超过k的部分可以用(n-k)*k得到,所以只要解决[1,k]这个区间即可,首先我们知道当k/i相同时,k%i是公差为k/i的等差数列,那么我们可以从sqrt(k)到2枚举k/i,原创 2015-10-04 11:10:34 · 825 阅读 · 0 评论