素数筛选与因数公式的应用,不要忘记文件尾的情况,oj 最重要的是细节
2015-04-08 23:32
274 查看
上题目:
goagain在做物理电学实验时需要一个2Ω的电阻,但是他发现他的实验台上只剩下了3Ω,4Ω,5Ω,6Ω的电阻若干,于是goagain把两个4Ω的电阻并联起来,发现效果也不错,于是他惊呼,这是物理学的奇迹!!
实验结束之后goagain思考了一下,其实用1个3Ω的电阻和一个6Ω的电阻并联一下也是不错的,但是似乎没有其他的方法可以并联两个电阻得到等效的2Ω电阻了.
goagain就想啊,如果我需要一个k Ω的电阻,但是我的手头上只有k+1
Ω,k+2 Ω,.....,一直到正无穷的整数Ω电阻,那么我有多少种办法把他们其中的两个并联起来,得到一个k
Ω的电阻呢?
goagain仔细想了想,终于发现自己的智力不足以解决这样的问题,于是他不得不感叹:这真是物理学的奇迹!
有多组测试数据,每组数据包含一个正整数k(k<2^16),处理到文件结束
对于每组测试数据,输出一个正整数,代表方法的总数
1/2=1/3+1/6=1/4+1/4
1/3=1/4+1/12=1/6+1/6
我的代码:
//总结来看,这题就是个大水题,不过那种求质数的思想分解因子的思想还是值得借鉴的;
1173: 这是物理学的奇迹!!
题目描述
goagain在做物理电学实验时需要一个2Ω的电阻,但是他发现他的实验台上只剩下了3Ω,4Ω,5Ω,6Ω的电阻若干,于是goagain把两个4Ω的电阻并联起来,发现效果也不错,于是他惊呼,这是物理学的奇迹!!实验结束之后goagain思考了一下,其实用1个3Ω的电阻和一个6Ω的电阻并联一下也是不错的,但是似乎没有其他的方法可以并联两个电阻得到等效的2Ω电阻了.
goagain就想啊,如果我需要一个k Ω的电阻,但是我的手头上只有k+1
Ω,k+2 Ω,.....,一直到正无穷的整数Ω电阻,那么我有多少种办法把他们其中的两个并联起来,得到一个k
Ω的电阻呢?
goagain仔细想了想,终于发现自己的智力不足以解决这样的问题,于是他不得不感叹:这真是物理学的奇迹!
输入
有多组测试数据,每组数据包含一个正整数k(k<2^16),处理到文件结束
输出
对于每组测试数据,输出一个正整数,代表方法的总数
样例输入
1 2 3
样例输出
1 2 2
提示
1/2=1/3+1/6=1/4+1/41/3=1/4+1/12=1/6+1/6
我的代码:
#include <cstdio> #define MAXN 800000//去除质数的范围,根据实际需要取值; using namespace std; bool is[MAXN]; int prm[MAXN]; int k; int getprm(int n){//筛选素数的情况,用于标志的情况 int i, j, k; for(i=0; i<n; i++) is[i]=true; is[0]=is[1]=false; k=0; for(i=2; i<n; i++){ if(is[i]){ prm[k++]=i; for(j=i+i; j<n; j+=i){ is[j] = false; } } } return k; } int resolve(int n){//分解因数 int i, tmpOfPrm, j, ans = 1; for(i=0, tmpOfPrm = prm[i]; prm[i]<=n; ++i, tmpOfPrm = prm[i]){ if(n%tmpOfPrm == 0){ j=1; n/=tmpOfPrm; while(!(n%tmpOfPrm)){ n/=tmpOfPrm; j++; } ans *= (j+j+1); } } return ans+1; } int main()//调用函数:1要特殊处理 { long long n; k = getprm(MAXN); while(scanf("%lld", &n)!= EOF){ if(n==1){ printf("1\n"); }else{ printf("%d\n",resolve(n)>>1); } } return 0; }
//总结来看,这题就是个大水题,不过那种求质数的思想分解因子的思想还是值得借鉴的;
相关文章推荐
- poj2689 Prime Distance 素数筛选应用 复习
- HDU_2136——最大质因数,素数筛选法
- 当web应用中面临大数据量同时并发量比较大的情况下性能是一个尤为重要的问题,面对性能优化我们应从何做起,在哪些方面做优化呢?
- 迷宫系列(四)其他细节和DFS的实际应用(重要)
- 新疆大学(新大)OJ xju 1009: 一带一路 prim求最短路径+O(n)素数筛选
- 重要:mongodb在网络环境不太好的情况下,在应用层会直接丢数据
- 反素数应用 ZOJ 2562 More Divisors + Timus OJ 1748. The Most Complex Number
- POJ 2689 Prime Distance 素数筛选法应用
- 素数三元组-南阳OJ1156(高效打表筛选)
- POJ 2478 欧拉公式应用 筛选 素数
- 杭电OJ——1164 Eddy's research I——素数筛选
- POJ 2689 Prime Distance 素数筛选法应用
- OJ--筛选N以内的素数
- 南阳理工oj 题目26 孪生素数问题 素数筛选法
- (数论 素数分布的应用)nefu 117 素数个数的位数(素数定理的位数公式)
- 【算法学习笔记】82.素数生成 数据范围利用 SJTU OJ 1020 分解质因数
- HDOJ-2138+HDOJ-1215 素数查找、素数约数和公式问题[总结:筛选法]
- Sumdiv 数论提 (数学很重要),这道题中算法变成了次要因素,数学才是最重要的,注意其中的一个经典公式(求因数和的)(很好推导)
- 斯特灵公式在求素数方面的应用
- 杭电4548 好长的筛选素数,打表,细节特别要注意l代表后面的大的那个数