Cod sursa(job #2054121)

Utilizator edward.codarceaEdward Codarcea edward.codarcea Data 1 noiembrie 2017 18:42:48
Problema Consecutive Scor 100
Compilator cpp Status done
Runda Arhiva ICPC Marime 0.66 kb
#include <stdio.h>
#include <math.h>

int main(void){
	unsigned int n,t,i,a,nr;
	double k,rad;
	int v1[100000],v2[100000];
	
	freopen("consecutive.in", "r", stdin);
	freopen("consecutive.out", "w", stdout);
	
	scanf("%u", &t);
	for(i=0; i<t; i++){
		scanf("%u", &n);
		//printf("%u",n);
		nr=0;
		rad=2*(sqrt(1/16+n/2)-1/4);
		//printf("%Lf",rad);
		for(a=2; a<=(int)rad ;a++){
			k=n/a - (a-1)/2;
			//printf("%f",k);
			//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("%u\n",nr);
		for(a=0; a<nr; a++){
			printf("%d %d\n",v1[a], v2[a]);
		}
	}
	
	return 0;
}