zoukankan      html  css  js  c++  java
  • Bi-shoe and Phi-shoe LightOJ

    题目链接:https://vjudge.net/problem/LightOJ-1370

    题意:给你N个欧拉函数值,找出每一个大于等于该欧拉函数值的数,并且要求相加和最小。

    题解:因为素数i的欧拉函数值等于i-1,所以我们只要找出大于等于i+1的素数即可。

     1 #include<iostream>
     2 #include<algorithm>
     3 #include<vector>
     4 #include<cstring>
     5 #include<cstdio>
     6 using namespace std;
     7 #define mem(s,n) memset(s,n,sizeof s);
     8 typedef long long ll;
     9 const int maxn=1e6+100;
    10 const int Inf=0x7f7f7f7f;
    11 int prim[maxn];
    12 //这里只需要判断是不是素数即可不用记录。
    13 void prime()
    14 {
    15     mem(prim,0);
    16     prim[0]=prim[1]=1;
    17     for(int i=2;i<maxn;i++)
    18     {
    19         if(prim[i]==0)
    20         {
    21             for(int j=i*2;j<maxn;j+=i)
    22             {
    23                 prim[j]=1;
    24             } 
    25         }   
    26     }
    27 }
    28 int main()
    29 {
    30     int t,n;
    31     prime();
    32     //for(int i=0;i<maxn;i++) cout<<i<<" "<<prim[i]<<endl;
    33     scanf("%d",&t);
    34     int k=0;
    35     while(t--)
    36     { 
    37        scanf("%d",&n);
    38        ll sum=0;
    39        for(int i=1;i<=n;i++)
    40        {
    41         int p;
    42         scanf("%d",&p);
    43         p++;
    44         int j;
    45          for( j=p;j<maxn;j++)
    46         {
    47             if(prim[j]==0) {break;}
    48         }
    49         sum+=j;
    50        }
    51        printf("Case %d: %lld Xukha
    ",++k,sum);
    52     }   
    53     return 0;
    54 }
    代码详情
  • 相关阅读:
    [洛谷P2463][SDOI2008]Sandy的卡片
    后缀数组
    周记【距gdoi:110天】
    hdu3068最长回文(Manacher算法)
    二分图的一些题目合集
    周记【距gdoi:117天】
    二分图、网络流模版总结
    2014end
    周记【距gdoi:126天】
    2-sat
  • 原文地址:https://www.cnblogs.com/zpj61/p/13446333.html
Copyright © 2011-2022 走看看