首页 > 其他分享 >牛客练习赛129 A-数数

牛客练习赛129 A-数数

时间:2024-09-27 22:11:56浏览次数:8  
标签:prime 练习赛 埃氏 22 int 质数 牛客 129

复习一下埃氏筛,快速拿出n以内质数。该题要是一个一个去计算“偶数”会超时非常多。

题意中”奇数“的本质是质数及质数的n次幂,所以先求出n以内所有质数及其n次幂的个数,就能计算出“偶数”的个数。

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 vector<bool> isPrime(5000005, true);
 4 vector <int> prime;
 5 int solve(int n) {
 6     if (n < 6) {
 7         return 0;
 8     }
 9     int oddCount = 0;
10     for(auto j : prime){
11         if (j > n){
12             break;
13         }
14         for (int i = 1;i < 23; ++i){ //题面数据n最大是5*10^5,在2^22到2^23之间,最大幂取22
15             if (pow(j, i) <= n){
16                 ++oddCount;
17             }else{
18                 break;
19             }
20         }
21     }
22     return n - oddCount - 1; //减去1,因为1非奇非偶
23 }
24 
25 int main() {
26     int n;
27     cin >> n;
28     //埃氏筛筛出质数
29     for (int i = 2; i <= sqrt(n); ++i) {
30         if (isPrime[i]) {
31             for (int j = i * i; j <= n; j += i) {
32                 isPrime[j] = false;
33             }
34         }
35     }
36     for (int i = 2;i <= n;++i){
37         if (isPrime[i])
38         prime.push_back(i);
39     }
40     cout<<solve(n);
41 }

 

标签:prime,练习赛,埃氏,22,int,质数,牛客,129
From: https://www.cnblogs.com/coderhrz/p/18436694

相关文章

  • 2024牛客暑期多校训练营1——A,B
    题解:更新:k=1的时候要乘n代码:#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;constintN=5e3+5;typedeflonglongll;typedefpair<int,int>PII;intT;intn,m,mod;intfac[N][N];intdp[N][N];intper[N];intpower(inta,int......
  • 牛客小白月赛101
    A-tb的区间问题枚举区间,然后用前缀和求解#include<bits/stdc++.h>usingnamespacestd;usingi32=int32_t;usingi64=longlong;usingvi=vector<int>;usingpii=pair<int,int>;i32main(){ ios::sync_with_stdio(false),cin.tie(nullptr); in......
  • 牛客小白月赛101
    比赛链接https://ac.nowcoder.com/acm/contest/90072A题tb的区间问题思路实际上是求长度为n−kn-kn−k的......
  • 牛客小白月赛101
    总结:无A.tb的区间问题题意:对一个数组进行k次删除操作,对于操作删除只能删除最左元素或者最右元素,求出k次操作后数组和的最大值思路:由于删除最左元素和最右元素那么必然最后得到的数组和是一个连续的区间,那么删除k也就是剩余n-k的空间,通过前缀和预处理得到每一......
  • 2024牛客多校 4 (概率,带权并查集,构造)
    2024牛客多校4(概率,带权并查集,构造)J-Zero题面:给出整数\(n\)和\(k\),一个01?字符串\(s\)。?有概率是0或是1,且概率相等,一段区间\([l,r]\)的贡献这样计算:这一段区间不包含0贡献为长度的\(k\)次方求这个字符串\(s\)的期望贡献是多少?solution:首......
  • 牛客周赛60
    A困难数学题一个数异或其本身就是0,直接输出0就好B构造序列正负数要相邻,那最长的序列肯定是数量最多的数放第一个,例3a2b,ababa,ba为一组,最后结果为少的数的两倍+最开始的那个数,特判两数相等情况点击查看代码lla,b;cin>>a>>b;if(a<b){......
  • 牛客多校2024-8
    K-HaitangandAva怎么还有人签到题wa啊/kk定义以下的字符串是合法的:空字符串若\(S\)是合法的,那么\(S\)+ava和ava+\(S\)都是合法的若\(S\)是合法的,那么\(S\)+avava和avava+\(S\)都是合法的给定一个字符串,判断是否合法。以v为分隔计数a,容易发现计数数组中除了开头和末......
  • 每日OJ_牛客_点击消除(栈)
    目录牛客_点击消除(栈)解析代码牛客_点击消除(栈)点击消除_牛客题霸_牛客网描述:牛牛拿到了一个字符串。他每次“点击”,可以把字符串中相邻两个相同字母消除,例如,字符串"abbc"点击后可以生成"ac"。但相同而不相邻、不相同的相邻字母都是不可以被消除的。牛牛想把字符串变......
  • 每日OJ_牛客_NC313 两个数组的交集
    目录牛客_NC313 两个数组的交集解析代码牛客_NC313 两个数组的交集两个数组的交集_牛客题霸_牛客网classSolution{public:/***代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可***@paramnums1int整型vec......
  • 牛客 字符逆序,三角形判断(C)
    题目1(字符逆置)输入一个字符串str(可以输入空格),将其内容颠倒过来,并输出。题目链接:字符逆序__牛客网解体思路:我们可以自定义一个逆序函数Reverse。然后,我们将每个单词倒置过来。最后再输出整个字符串。其中,left代表左边,right代表右边,我们通过循环来控制交换的次数,每次循环......