1. 程式人生 > 其它 >C++基礎習題(求範圍內有多少梅森尼數)

C++基礎習題(求範圍內有多少梅森尼數)

技術標籤:C++習題c++

梅森數又稱麥森數,是指形如2^p-1的正整數,其中指數p是素數,常記為Mp,若其是素數,則稱為梅森素數,求[m,n]範圍內有多少梅森尼數

#include <iostream>
using namespace std;

int meisen(int m,int n);

int main()
{
	int m, n;

	cout << "請輸入區間的最小值和最大值" << endl;
	cin >> m >> n;

	cout << "在區間["
<< m << "," << n << "]上,梅森尼數的個數為" << meisen(m, n) << endl; return 0; } int meisen(int m, int n) { int result=0; int i,j; int count=0; int a; int p=1; for (i = 2;i<=n; i++) { for (j = 1; j <= i; j++) { if (i % j == 0) { count++
; } } if (count == 2)//上面這部分用來判斷是否為素數 { for (a = 1; a <= i; a++) { p = 2*p; } if ((p-1) >= m && (p-1) <= n) { result++; } } count = 0; p = 1; } return result; }