?
题意:
求方程1/x+1/y=1/n的解的个数 1/3+1/2 与1/2+1/3看作是一组解。
分析:
1/x+1/y = 1/n 设y = n + k;
==>1/x + 1/(n+k)=1/n;
==>x = n^2/k + n;
因为x为整数,k就是n^2的约数。
代码如下:
#include
#include
#include
#include
using namespace std; const int maxn = 1e7+10; typedef long long LL; int p[maxn/10],cnt; bool vis[maxn]; int fac[1000],tot; void init(){ cnt=0; memset(vis,0,sizeof(vis)); for(int i=2;i
1) fac[tot++]=1; LL ans = 1; for(int i=0;i
题目链接:SPOJ - KPEQU 传送门
题意:
同上题差不多不过n换成了n!,因此需要用到高精度以及n!的素因子分解
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
static int cnt ;
static int[] pri =new int[10010];
static boolean[] vis = new boolean[10010];
public static void init(){
cnt=0;
for(int i=0;i<10010;i++) vis[i] = false;
for(int i=2;i<10010;i++){
if(!vis[i]){
pri[cnt++]=i;
for(int j=i+i;j<10010;j+=i) vis[j]=true;
}
}
}
public static int calc(int n,int p){
if(n
?
?