登 录
#include <iostream> using namespace std; bool IsPrime(long long int n) { if (n==1) return false; if (n==2) return true; if (n%2==0) return false; long long int hd=8; long long int lg=6; long long int lh=8; long long int va=n-1; while(va>=hd) { if(!((va-hd)%lg)) return false; lh+=8; lg+=4; hd+=lh; } return true; } int main() { int lenth = 7; //螺旋矩阵长度7 double rate = 0.62; int prime_count = 8; int totol_count = 13; int n = 49; int diff = 8; while (rate >= 0.1) { for (int i=0; i<4; ++i) { n += diff; if (IsPrime(n)) { prime_count++; } } totol_count += 4; rate = (double)prime_count / (double)totol_count; lenth += 2; diff +=2; } cout << lenth << endl; return 0; }
抱歉!评论已关闭.