![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数论
文章平均质量分 54
H1deonbush
这个作者很懒,什么都没留下…
展开
-
HDU 2710 素数筛(此题巨坑)
把1当成素数! 排在表里面AC#include #include #include using namespace std;const int MAX=15000;bool isprime[MAX];int prime[MAX],num_prime;void getprime(){ memset(isprime,1,sizeof(isprime)); prim原创 2015-05-27 18:45:51 · 357 阅读 · 0 评论 -
HDU 1452 Happy 2004
2004 = 2^2*3*1672004^x = 2^2*x*3^x*167^xsum(x) 表示 x 的因子和则有 sum(2004^x) %29 = (2^2*x)%29*(3^x)%29*(167^x)%29∵ 167 % 29 = 22∴ sum(2004^x)%29 = (2^2*x)%29*(3^x)%29*(22^x)%29原创 2015-08-02 20:14:30 · 341 阅读 · 0 评论 -
CF 17A Noldbach problem
题意 给定n k 求小于等于n 的数能拆成两个相邻的素数和1的和 这样的数的个数是否大于等于k#include #include #include using namespace std;bool isprime[1010];int prime[1010],sum_prime;void get_prime(){ sum_prime = 0; memset(isp原创 2015-07-11 20:16:08 · 523 阅读 · 0 评论 -
CF 7C Line
裸拓展欧几里得#include #include #include #include using namespace std;typedef long long LL;LL gcd(LL a,LL b){ return b ? gcd(b,a%b):a;}void ex_gcd(LL a,LL b,LL &x,LL &y){ if(b == 0)原创 2015-07-10 19:15:58 · 530 阅读 · 0 评论 -
POJ 1595
睡觉前水一发#include #include #include using namespace std;const int MAX=1000;bool isprime[MAX];int prime[MAX],num_prime;void getprime(){ memset(prime,0,sizeof(prime)); memset(isprime,1,s原创 2015-05-24 23:17:47 · 324 阅读 · 0 评论 -
POJ 1401
#include #include using namespace std;int main(){ int n; while(~scanf("%d",&n)) { while(n--) { long long num,ans=0; scanf("%lld",&num);原创 2015-05-24 16:17:17 · 325 阅读 · 0 评论 -
POJ 2689
#include #include #include using namespace std;//若直接筛到int的最大值 TLE#define MAX 150000#define max 1000005bool isprime[MAX];long long prime[MAX],nprime;void getprime() //筛素数{ long long i,j;原创 2015-05-24 15:18:40 · 313 阅读 · 0 评论 -
POJ2262 素数筛
写一个素数筛 然后从2开始遍历找到第一组符合条件的素数对 即差的绝对值为最大值#include #include #include #include using namespace std;const int MAX=1e7;bool isprime[MAX];int num_prime,prime[MAX];void get_prime(){ memset(原创 2015-05-23 13:48:14 · 374 阅读 · 0 评论 -
HDU 1576 乘法逆元
#include #include using namespace std;#define MOD 9973typedef long long LL;void exgcd(LL a,LL b,LL &x,LL &y){ if(b==0) { x=1; y=0; return ; } exgcd(b,a%b原创 2015-05-30 18:47:38 · 460 阅读 · 0 评论 -
快速幂 快速幂取模
快速幂的思想在于快速求解高幂指数的幂运算 复杂度为O(log2n) 与朴素运算相比有很大的改进接下来给出代码 其中有详解#include #include using namespace std;typedef long long LL;LL pow1(int a,int b)///最常规的方法{ LL ans=1; while(b--) ans*=a;原创 2015-05-31 17:01:19 · 424 阅读 · 0 评论 -
HIT 2815 扩展欧几里得(前方高能)
题目:扩展欧几里得 单独列出几种情况判断 #include #include #include using namespace std;typedef long long LL;LL gcd(LL a,LL b){ return b?gcd(b,a%b):a;}void exgcd(LL a,LL b,LL &x,LL &y){ if(b==0) {原创 2015-05-30 21:51:08 · 459 阅读 · 0 评论 -
HDU 2669 扩展欧几里得
#include #include using namespace std;typedef long long LL;LL gcd(LL a, LL b){ return b ? gcd(b,a%b) : a;}void exgcd(LL a ,LL b,LL &x ,LL &y){ if(b==0) { x=1; y=0;原创 2015-05-31 14:56:23 · 314 阅读 · 0 评论 -
POJ 2142 扩展欧几里得
题意:手中有一个天平 质量分别为a b的砝码和c的物品 砝码两边都可以摆放 求砝码的个数使得天平平衡 (要求使得砝码的数量最小 若有相等的则使总质量最小)思路:分别求x的最小正整数解和对应的y的值 y的最小正整数解对应的x的值 两组进行比较#include #include #include using namespace std;typedef long long LL;LL原创 2015-05-30 20:09:41 · 265 阅读 · 0 评论 -
POJ 1061 扩展欧几里得
#include #include using namespace std;typedef long long LL;LL gcd(LL a,LL b){ return b?gcd(b,a%b):a;}void exgcd(LL a,LL b,LL &x,LL &y){ if(b==0) { x=1; y=0;原创 2015-05-30 11:45:25 · 327 阅读 · 0 评论 -
素数筛
#include #include #include using namespace std;const int MAX=1e7;bool isprime[MAX];void get_prime(){ memset(isprime,true,sizeof(isprime)); long long i,j; for( i = 2 ; i<MAX; i++)原创 2015-05-21 12:37:12 · 245 阅读 · 0 评论 -
素因子分解
#include #include #include using namespace std;const int MAX=1e7;bool isprime[MAX];int prime[MAX];int num;void get_prime(){ memset(isprime,true,sizeof(isprime)); long long i,j; f原创 2015-05-21 12:38:26 · 587 阅读 · 0 评论 -
POJ 1365 素数筛
本以为会有什么简单的方法 但是没想出来 于是用笨方法水了一下 结果ac了用字符串读入 转化成数组 再转化成数 素数筛一下 素因子分解 比较麻烦。。。。#include #include #include using namespace std;const int MAX=50000;bool isprime[MAX];int num_prime,prime[MAX],inum原创 2015-05-26 17:02:42 · 392 阅读 · 0 评论 -
FZU 1752 Quickmod Quickmulti
题意 :Given A,B,C, You should quickly calculate the result of A^B mod C. (1原始的Quickmod 和 QuickmultiLL QuickMod(LL a,LL b,LL c){ LL ans = 1; while(b) { if(b&1) ans = ans*a%c;原创 2015-08-03 22:27:49 · 462 阅读 · 0 评论