P2154
java自带大数据处理
import java.*;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
static public void main(String args[]) {
Scanner in = new Scanner(System.in);
BigInteger a = in.nextBigInteger();
BigInteger b = in.nextBigInteger();
System.out.println(a.gcd(b));
}
}
P1414
逐个求每个因子的个数就行
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
int n,t = 0,c[1000010] = {0};
int main(){
scanf("%d",&n);
int x;
for(int i = 1;i<=n;++i){
scanf("%d",&x);
t = max(t,x);
for(int i = 1;i*i<=x;++i){
if(x % i == 0){
++c[i];
if(i*i != x)
++c[x/i];
}
}
}
for(int i = 1;i<=n;++i){
while(c[t] < i) --t;
cout<<t<<endl;
}
return 0;
}