Problem 44 Pentagon numbers (暴力...)

来源:互联网 发布:网络每天固定时间掉线 编辑:程序博客网 时间:2024/05/21 06:38

Pentagon numbers

Problem 44

Pentagonal numbers are generated by the formula, Pn=n(3n−1)/2. The first ten pentagonal numbers are:

1, 5, 12, 22, 35, 51, 70, 92, 117, 145, ...

It can be seen that P4 + P7 = 22 + 70 = 92 = P8. However, their difference, 70 − 22 = 48, is not pentagonal.

Find the pair of pentagonal numbers, Pj and Pk, for which their sum and difference are pentagonal and D = |Pk − Pj| is minimised; what is the value of D?


Answer:
5482660Completed on Sun, 30 Oct 2016, 08:19
题解:无脑暴力...

代码:

#include<bits/stdc++.h>using namespace std;int calc(int n){return n*(3 * n - 1) / 2;}int solve(int n){for (int i = 1; i*(3*i-1) <= 2*n; i++){if (i*(3 * i - 1) == 2 * n)return 1;}return 0;}int main(){int ans=0;for (int i = 2; i <= 3000; i++){for (int j = 1; j < i; j++){int sum = calc(i) + calc(j);int diff = calc(i) - calc(j);if (solve(sum) && solve(diff))cout << diff << endl;}}return 0;}


2 0
原创粉丝点击