#include <bits/stdc++.h>
using namespace std;

int main() {
	long long k;
	cin >> k;
	// b == k*a/(a-k) == k+k*k/(a-k)
	set< pair<long long,long long> > S;
	vector< pair<long long,int> > P;
	int k2 =k;
	for(int i =2; i*i <= k2; i++) if(k2%i == 0) {
		int x =0;
		while(k2%i == 0) {k2 /=i; x++;}
		P.push_back(make_pair(i,2*x));}
	if(k2 > 1) P.push_back(make_pair(k2,2));
	vector<long long> D(1,1);
	for(int i =0; i < P.size(); i++) {
		int N =D.size();
		for(int j =0; j < N; j++) {
			long long d =D[j];
			for(int l =1; l <= P[i].second; l++) {
				d *=P[i].first;
				D.push_back(d);}
			}
		}
	for(int i =0; i < D.size(); i++)
		S.insert(make_pair(k*k/D[i]+k,D[i]+k));
	
	cout << S.size() << "\n";
	for(auto it =S.begin(); it != S.end(); it++) 
		cout << it->first << " " << it->second << "\n";
	return 0;}