文章
19
粉丝
21
获赞
5
访问
19.0k
# include <bits/stdc++.h>
using namespace std;
typedef long long ll;
bool is_prime(ll n){
if (n <= 1) return false;
if (n == 2) return true;
for (int i = 2; i <= n / i; ++i){
if (n % i == 0) return false;
}
return true;
}
int get_bit(ll n){
ll k = n;
if (k == 0) return 1;
int sum = 0;
while (k){
k >>= 1;
++ sum;
}
return sum;
}
int main (void){
ll n;
cin >> n;
int cnt = get_bit(n); // 得到二进制的位数
for (ll i = 1; i <= cnt; ++i){
if (is_prime(i) && is_prime((ll)pow(2,i) - 1)){
// i其实就是p,i是素数
printf("M(%lld)=%lld\n",i,(ll)pow(2,i) - 1);
}
}
// cout << get_bit(8388607) << endl;
}
...
登录后发布评论
暂无评论,来抢沙发