lightoj 1236(素因数分解)


タイトルリンク:http://vjudge.net/problem/LightOJ-1236;
题目分析:本題は解を求めて、nより小さい数の中でどれだけlcm値がnで、実はnより小さい数の対を探して、その素因子はnと同じで、しかも、素因子の個数の最大値はnと同じで、だからこの2つの数の組成、nのすべての素因子に対して、1つの値がnに等しい素因子の個数だけを必要として、もう1つは勝手に、個数をa[i]にしてこのような値を2*(a[i]+1)-1にして、(最大の値はペアのみ).本題は重複してカウントしないので、総数は2を除く.
コードは次のとおりです.
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

using namespace std;
int k;
long long suv[100500];
const int N=10000100;
long long prime[N/10]={0};
int num_prime=0;
bool isNotPrime[N]={1,1};
void su(){
    for(long i = 2 ; i < N ; i ++){
        if(!isNotPrime[i])
        prime[num_prime++]=i;
        for(long j = 0 ; j < num_prime &&i*prime[j]