Cod sursa(job #2054065)

Utilizator edward.codarceaEdward Codarcea edward.codarcea Data 1 noiembrie 2017 18:03:36
Problema Consecutive Scor 0
Compilator cpp Status done
Runda Arhiva ICPC Marime 0.58 kb
#include <stdio.h>
#include <math.h>

int main(void){
	int n,t,i,a,nr;
	double k,rad;
	int v1[5000],v2[5000];
	
	freopen("consecutive.in", "r", stdin);
	freopen("consecutive.out", "w", stdout);
	
	scanf("%d", &t);
	for(i=0; i<t; i++){
		scanf("%d", &n);
		nr=0;
		rad=(-1+sqrt(1+8*n))/2;
		for(a=2; a<=(int)rad; a++){
			k=n/a - (a-1)/2;
			//if((double)(int)k==k){
			if((2*n-a*(a-1))%(2*a)==0){
				v1[nr]=(int) k;
				v2[nr]=(int) k+a-1;
				nr++;
			}
		}
		printf("%d\n",nr);
		for(a=0; a<nr; a++){
			printf("%d %d\n",v1[a], v2[a]);
		}
	}
	
	return 0;
}