ルース・アーロン・ペア(Python, C)

素因数の和が互いに等しい、差が1の自然数の組をルース・アーロン・ペアと呼ぶ。
20000以下には26組しかない。

#素因数分解を原始的な方法で解く

def prime_desolve(n):
	List = []
	i = 2
	while n > 1:
		if n % i == 0:
			while n % i == 0:
				List.append(i)
				n = n / i
		else:
			i = i + 1
	return sum(List)

def pra():
	A = []
	for i in xrange(2,20000 + 1):
		if prime_desolve(i) == prime_desolve(i + 1):
			A.append((i,i + 1))
	return A
#include <stdio.h>

int desolve(int);

main(){
	int i;
	for(i = 2; i <= 20000; i++){
		if( desolve(i) == desolve(i + 1)){
			printf("%d\t%d\n", i, i + 1);
		}
	}
}

int desolve(int n){
	int count = 0;
	int i = 2;
	while( n > 1){
		if( n % i == 0){
			while( (n % i) == 0){
				count = count + i;
				n = n / i;
			}
		}else{
			i = i + 1;
		}
	}
	return count;
}