文章

19

粉丝

21

获赞

5

访问

19.0k

头像
暑假机试训练--Day3
综合
发布于2023年7月28日 18:56
阅读数 912

华中科技大学2019机试题:

1.梅森素数

A.梅森素数

 

2.单词个数统计

B.单词个数统计

 

3.文件处理

C.文件处理

 

4.进制转换-华科

D.进制转换-华科

 

5.字符串的操作

E.字符串的操作

 

6.分数转小数

F.分数转小数

 

AC代码:

A.梅森素数

# 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;
}
...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发