fork(3) download
#include <stdio.h>

int isWeird(int* s, int a, int b, int k, int n){
	int i,t,r;
	printf("%d\n",k);
	if(k==n) return 0;
	else if(k<n) return -1;
	for(i=a;(t=k-s[i])>=n;i++){
		r=isWeird(s,i+1,b,t,n);
		if(r==0) return r;
	}
	return -1;
}

int main(void) {
	int c, n, s[1000],b,i,k;
	scanf("%d",&c);
	s[0]=1;
	while(c--){
		scanf("%d",&n);
		b=k=1;
		for(i=2;i*i<=n;i++){
			if(n%i==0) s[b++]=i;
		}
		for(i=b-1;i>0;i--){
			k+=s[i];
			s[b]=n/s[i];
			if(s[b]!=s[i]) k+=s[b++];
		}
		if(k>n){
			if(isWeird(s,0,b,k,n)) printf("weird\n");
			else printf("not weird\n");
		} else {
			printf("not weird\n");
		}
	}
	return 0;
}
Success #stdin #stdout 0s 2252KB
stdin
3
6
12
70
stdout
not weird
16
15
13
12
not weird
74
73
71
72
weird