poj 2917 Diophantus of Alexandria
2012-07-20 16:04
211 查看
题意:1/x+1/y=1/n 给出n,求x、y的解数,x、y、n均为正整数。
解法:1/x+1/y=1/n --> nx+ny=xy --> (n-x)*(n-y)=n*n 转化为求n*n小等于n的因子的个数,由于n达到10^9,直接求太大。
将n分解质因子,复杂度为logn,n*n对应的质因子和n相同,且个数翻倍,即可得到n*n的质因子个数。
解法:1/x+1/y=1/n --> nx+ny=xy --> (n-x)*(n-y)=n*n 转化为求n*n小等于n的因子的个数,由于n达到10^9,直接求太大。
将n分解质因子,复杂度为logn,n*n对应的质因子和n相同,且个数翻倍,即可得到n*n的质因子个数。
#include<iostream> #include<cstring> #include<cstdio> #include<cmath> #include<algorithm> using namespace std; int main(){ //freopen("1.txt", "r", stdin); int T, i, n, ans, cas=1; scanf("%d", &T); while(T--){ if(cas>1)printf("\n"); scanf("%d", &n); ans=1; for(i=2; i<=sqrt(1.0*n); i++){ if(n%i==0){ int t=0; while(n%i==0){ n/=i;t++; } ans*=(2*t+1); } } if(n!=1)ans*=3; //n剩余为一个质数 printf("Scenario #%d:\n%d\n", cas++, (ans+1)/2); } return 0; }
相关文章推荐
- [数论]POJ 2917 Diophantus of Alexandria
- POJ-2917 / HDU-1299 Diophantus of Alexandria
- POJ 2917 Diophantus of Alexandria ★(数论)
- POJ 2917 Diophantus of Alexandria ★(数论)
- poj 2917 Diophantus of Alexandria 因数分解解1/x+1/y=1/n
- hdu1299 Diophantus of Alexandria(数学题)
- hdu1299 Diophantus of Alexandria
- HDU 1299 Diophantus of Alexandria (数论)
- hdu-1299 Diophantus of Alexandria(分解素因子)
- BITACM 1050 Diophantus of Alexandria
- HDU 1299 Diophantus of Alexandria
- Diophantus of Alexandria
- hdu 1299 Diophantus of Alexandria(数学题)
- hdu1299-Diophantus of Alexandria(分解素因子)
- HDU 1299 Diophantus of Alexandria
- hdu 1299 Diophantus of Alexandria
- HDU 1299 Diophantus of Alexandria
- Diophantus of Alexandria(求一一个数的因子个数)
- HDOJ 题目1299 Diophantus of Alexandria(数学)
- HDU-1299 Diophantus of Alexandria 素因子分解