ルース・アーロン・ペア(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; }