2013年6月3日

hdu 4279(规律题)

摘要: 题意:容易理解.分析:做了这道题,我的收获就是碰到一些数学题可以找规律,这种题用常规方法是无法解决的,所以只能找规律。代码实现:#include<stdio.h>#include<string.h>#include<stdlib.h>#include<math.h>int main(){ int T; __int64 m,n; __int64 sum1,sum2; scanf( "%d", &T ); while( T -- ) { scanf( "%I64d%I64d", &m, & 阅读全文

posted @ 2013-06-03 21:08 后端bug开发工程师 阅读(423) 评论(0) 推荐(0) 编辑

hdu 4135(容斥原理)

摘要: 题意:就是让你求(a,b)区间于n互质的数的个数.分析:我们可以先转化下:用(1,b)区间与n互质的数的个数减去(1,a-1)区间与n互质的数的个数,那么现在就转化成求(1,m)区间于n互质的数的个数,如果要求的是(1,n)区间与n互质的数的个数的话,我们直接求出n的欧拉函数值即可,可是这里是行不通的!我们不妨换一种思路:就是求出(1,m)区间与n不互质的数的个数,假设为num,那么我们的答案就是:m-num!现在的关键就是:怎样用一种最快的方法求出(1,m)区间与n不互质的数的个数?方法实现:我们先求出n的质因子(因为任何一个数都可以分解成若干个质数相乘的),如何尽快地求出n的质因子呢?我们 阅读全文

posted @ 2013-06-03 15:08 后端bug开发工程师 阅读(6073) 评论(0) 推荐(3) 编辑

求一个数的质因子

摘要: 代码实现:#include<stdio.h>int main(){ __int64 a[100],num,i,n; while(scanf("%I64d",&n)!=EOF) { num=0; for(i=2;i*i<=n;i++) { if(n%i==0) { a[num++]=i; while(n%i==0) n=n/i; } } if(n>1) a[num++]=n; ... 阅读全文

posted @ 2013-06-03 14:44 后端bug开发工程师 阅读(5432) 评论(1) 推荐(0) 编辑

导航