All pastes #511225 Raw Edit

Someone

public java v1 · immutable
#511225 ·published 2007-05-26 10:07 UTC
rendered paste body
import java.util.*;public class WeirdNumbers {	public static void main(String[] args) {		List<Integer> al=new ArrayList<Integer>();		List<Integer> tl=new ArrayList<Integer>();				List<Integer> rl=new ArrayList<Integer>();		HashSet<Integer> spn = new HashSet<Integer>();				int l=2,s=0,c=0,a,n; 		long rt=System.currentTimeMillis();				l:for(;;l+=2,s=1) {			if(spn.contains(l)) continue;			al.clear();			for(int i=2;i<Math.sqrt(l);i++) {				if(0==l%i) {					if(spn.contains(i)||spn.contains(n=l/i)) continue l;					al.add(i); al.add(n);					s+=i+n;				}			}			if((a=s-l)<=0) continue;			if(al.contains(a)) {				for(int i=1;i<=2;i++) spn.add(l*i);//				spn.add(l); spn.add(2*l);				continue;			}			tl.clear();			al.add(0,1);						for(int i:al) if(i<a) tl.add(i);			int ta[]=new int[tl.size()];			for(int i=0;i<ta.length;i++) ta[i]=tl.get(i); 						if(backTrack(ta, 0,a)) {				for(int i=1;i<=2;i++) spn.add(l*i);//				spn.add(l); spn.add(2*l);				continue;			}			int na[]=new int[al.size()];			for(int i=0;i<na.length;i++) na[i]=al.get(i); 						if(!backTrack(na,0,l)) {				rl.add(l);//				System.out.println(++c+":\t"+l);				if(1000==++c) break;			}		}		System.out.println(spn.size()+", "+(rl.get(14)+rl.get(24)+rl.get(19))+", "+(System.currentTimeMillis()-rt)+"ms");	}	static boolean backTrack(int a[], int k, int n) {		if(n == 0) return true;		if(k == a.length) return false;		if(n >= a[k]) {			n -= a[k];			if(backTrack(a,k+1,n)) return true;			n += a[k];		}		if(backTrack(a,k+1,n)) return true;		return false;	}}