세제곱수의 순열(permutation)
오랜만에 머리도 식힐(?) 겸 프로젝트 오일러를 하나 풀어봤다. 문제의 골자는 세제곱수 중에 순열을 이루는 것이 다섯 개 있는 것을 찾아내는 것. 이 문제는 사실 unsigned long long을 사용하면 그닥 어렵지 않게 만들 수 있다. 몇 가지 포인트만 잡으면 꽤 빠르게 동작하는 프로그램을 만들 수 있다. 1. 모든 자릿수의 모든 숫자를 대상으로 계산하면 너무 복잡해짐 2. 세제곱수의 자릿수를 결정한 뒤 그 범위에 해당되는 세제곱근들만 계산 #include #include #include using namespace std; bool ArePermutated(unsigned long long b1, unsigned long long b2) { int cnt[10]; memset(cnt, 0, siz..