随笔分类 -  初等数论

uestc 1725 吴神数
摘要:// 筛选法// 先求出 sqrt(1#include #include #include #include #include #include using namespace std;#define MOD 1000000007#define maxn 1000010#define maxm 48010#define LL long longint pr[maxm];int p;void getP(){ int i,j; for(i=4;iB) break; for(j=(A-1+pr[i])/pr[i];j*pr[i]1){ ... 阅读全文

posted @ 2013-07-29 09:15 江财小子 阅读(152) 评论(0) 推荐(0)

uestc 1720无平方因子数
摘要:求素数 然后容斥原理// n之内有平方因子的数的个数sum =n/(2^2) + n/(3^2)+……+n/(k^2) - n/(2^2 * 3^2)-……+…….// #pragma comment(linker, "/STACK:1024000000,1024000000")#include #include #include #include #include #include #include using namespace std;#define MOD 1000000007#define maxn 1000010#define maxm 1000010#defi 阅读全文

posted @ 2013-07-27 11:33 江财小子 阅读(495) 评论(0) 推荐(0)

FZU 1591 Coral的烦恼
摘要:Problem Description程序设计课的老师给Coral布置了一道题:用T(n)表示所有能整除n的正整数之和,对于给定的数字n,记S(n)=T(1)+T(2)+…+ T(n)。你的任务就是帮助Coral求出S(n)。Input本题有多组输入数据,你必须处理到EOF为止。每组数据输入仅一行一个整数n (1= sq 的因子 j 呢?我们可以统计自 j 到 N 的数中,某因子出现 1 次的数(肯定是连续的)的个数,出现 2 次的数(肯定是连续的)的个数,。。。。。。比如N = 12;sq = 3;那么因子 1,2,3 招致的和就是 1* 12 + 2*6 + 3* 4 = 36。自 4 到 阅读全文

posted @ 2013-07-24 15:30 江财小子 阅读(265) 评论(0) 推荐(0)

fzu 1675 The Seventy-seven Problem
摘要:给你长度为 10^5~10^6长度,由数字组成的串 其中有4位不见了 补全该串 使得在该串能整除 77的同时 尽可能大// 先计算出每个 n*10^m 模 77 的循环节 n=0,1,2..,9// 然求出串的每位 mod 77 累加 抹黑的4为另外处理#include #include #include #include #include #include #include using namespace std;#define maxm 100010#define maxn 1000110int rc[10][10];int num[10];void calculate(int n){ . 阅读全文

posted @ 2013-07-24 10:25 江财小子 阅读(172) 评论(0) 推荐(0)

zoj 1842 Prime Distance
摘要:// 数论题,增强的筛法,回想素数筛法// 只要筛到最大数的开方,剩下的就是素数// 于是这里,开一个 sqrt(2^31) 大约 65536 的素数表,然后// 对于每个 L~U 的区间,筛掉 sqrt(U) 之内的素数的倍数即可 #include #include #include #include #include #include #include #include #include using namespace std;#define MOD 1000000007#define maxm 10010#define maxn 50010int prim[maxn/3],p;bool 阅读全文

posted @ 2013-07-23 19:27 江财小子 阅读(198) 评论(0) 推荐(0)

zoj 2095 Divisor Summation
摘要:和 hdu 1215 一个意思// 只是我 1坑了 1 时应该为0 #include #include #include #include #include #include #include #include #include using namespace std;#define maxm 10010#define maxn 1000010int prim[maxn/3],p;bool f[maxn];int gcd(int a,int b){ int r; while(r=a%b){a=b;b=r;} return b;}bool isp(int n){ if(... 阅读全文

posted @ 2013-07-23 17:11 江财小子 阅读(213) 评论(0) 推荐(0)

zoj 2286 Sum of Divisors
摘要:// f(n)表示 n的约数和 不包括自己// 给你一个m 求1 到 100万里面 f(n)#include #include #include #include #include #include #include #include using namespace std;#define maxm 10010#define maxn 1000010int prim[maxn/3],p;bool f[maxn];int gcd(int a,int b){ int r; while(r=a%b){a=b;b=r;} return b;}bool isp(int n){ ... 阅读全文

posted @ 2013-07-23 16:49 江财小子 阅读(186) 评论(0) 推荐(0)

zoj 2723 Semi-Prime
摘要:// 题意都不好理解 我以为是求 一个数被分成2个素数和 然后是求分成2个素数积// 坑爹 忘记写 !=EOF 然后一直超时 然后换了几种 还是超时 一看别人代码 速度明显比我慢// 然后发现被自己坑了#include #include #include #include #include #include #include #include #include using namespace std;#define maxm 10010#define maxn 1000010int gcd(int a,int b){ int r; while(r=a%b){a=b;b=r;... 阅读全文

posted @ 2013-07-23 16:27 江财小子 阅读(169) 评论(0) 推荐(0)

POJ Longge's problem 2480
摘要:Longge's problemTime Limit: 1000MSMemory Limit: 65536KTotal Submissions: 5880Accepted: 1862DescriptionLongge is good at mathematics and he likes to think about hard mathematical problems which will be solved by some graceful algorithms. Now a problem comes: Given an integer N(1 #include #include 阅读全文

posted @ 2012-10-22 16:08 江财小子 阅读(354) 评论(0) 推荐(1)

Poj 1730 Perfect Pth Powers
摘要:Perfect Pth PowersTime Limit: 1000MSMemory Limit: 10000KTotal Submissions: 14512Accepted: 3263DescriptionWe say that x is a perfect square if, for some integer b, x = b2. Similarly, x is a perfect cube if, for some integer b, x = b3. More generally, x is a perfect pth power if, for some integer b, x 阅读全文

posted @ 2012-08-01 18:12 江财小子 阅读(279) 评论(0) 推荐(0)

ZOJ 3622 Magic Number
摘要:Magic NumberTime Limit: 2 Seconds Memory Limit: 32768 KBA positive number y is called magic number if for every positive integer x it satisfies that put y to the right of x, which will form a new integer z, z mod y = 0.InputThe input has multiple cases, each case contains two positve integers m, ... 阅读全文

posted @ 2012-07-29 21:28 江财小子 阅读(280) 评论(0) 推荐(0)

HDU 1124 Factorial
摘要:FactorialTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 1651Accepted Submission(s): 1062Problem DescriptionThe most important part of a GSM network is so called Base Transceiver Station (BTS). These transceivers form the areas called cells (this t 阅读全文

posted @ 2012-07-28 17:15 江财小子 阅读(413) 评论(0) 推荐(0)

筛选素数
摘要://发现了一种写起来方便的素数筛选法、速度也够快//比用sqrt写函数判断快噢#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>#define N 1000000using namespace std;bool hash[N];int main(){ int i,j=0; for(j=4;j<N;j+=2) hash[j]=1; for(i=3;i<1000;i+=2) if(!hash[i])//在这里面就可以直接收集素数放在数组里 阅读全文

posted @ 2012-07-23 13:43 江财小子 阅读(182) 评论(0) 推荐(1)

hdu 2511 汉诺塔 X
摘要:汉诺塔 XTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 294Accepted Submission(s): 175Problem Description1,2,...,n表示n个盘子.数字大盘子就大.n个盘子放在第1根柱子上.大盘不能放在小盘上.在第1根柱子上的盘子是a[1],a[2],...,a[n]. a[1]=n,a[2]=n-1,...,a[n]=1.即a[1]是最下面的盘子.把n个盘子移动到第3根柱子.每次只能移动1个盘子,且大盘 阅读全文

posted @ 2012-07-22 08:21 江财小子 阅读(429) 评论(0) 推荐(1)

HDU 3006 The Number of set
摘要:The Number of setTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 722Accepted Submission(s): 437Problem Description Given you n sets.All positive integers in sets are not less than 1 and not greater than m.If use these sets to combinate the new set, 阅读全文

posted @ 2012-07-13 15:51 江财小子 阅读(219) 评论(0) 推荐(0)

初等数论
摘要:初等数论昨晚写到凌晨近一点,终于把自己目前会的数论知识做了下终结,最后发现原来只有这么点东西。。。路还好远O(∩_∩)O哈!一.求最大公约数:gcd(a,b)代表a,b的最大公约数,设为d;(1)朴素算法:暴力枚举咯.,先比较a,b大小,然后从1开始直到较小的那个数,算出最大可以被2数同时整除的数,即d;(2)欧几里得算法:gcd(a,b)=gcd(b,a%b);递归求解;在证明这个之前,首先得知道几个定理: 1.d=gcd(a,b)则d|ax+by; |代表的是整除;这个比较明显是正确的。 2.a|b且b|a <=> a=b; 这个也比较显然。设d=gcd(a,b);q=[a/b 阅读全文

posted @ 2012-05-03 07:16 江财小子 阅读(226) 评论(0) 推荐(0)