Cod sursa(job #866146)

Utilizator BarracudaFMI-Alex Dobrin Barracuda Data 27 ianuarie 2013 16:41:23
Problema Descompuneri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<fstream>
#include<vector>
#include<algorithm>
#define dim 3005

using namespace std;
ifstream f("desc.in");
ofstream g("desc.out");

vector < long long > di;
int a[dim][dim];
int n,k,i,j,nrd;
int main () {
	
	f>>n>>k;
	
	for(i=2;i*i<=n;++i){
		
		if(n%i)
			continue;
		di.push_back(i);
		if(i*i!=n)
			di.push_back(n/i);
	}
	di.push_back(1);
	di.push_back(n);
	sort(di.begin(),di.end());
	nrd=di.size()-1;
	for(i=1;i<=nrd;++i){
		a[0][i]=1;
	}
	for(i=1;i<=nrd;++i) {
	
		for(j=nrd,k=0;j>0 ;--j) {
			a[i][j]=a[i][j+1];
			if(di[i]%di[j])
				continue;
			
			for(;di[k]<di[i]/di[j] && k<=nrd;++k) {
				a[i][j]+=a[k][j];
				
			}
			
		}
	}
	g<<a[nrd][1]<<"\n";
	return 0;
}