1089 喜羊羊运动会——m位数问题

2023-12-30 08:32:42

#include<bits/stdc++.h>
using namespace std;
int a[1000005],b[1000005],t,ans,n,m;
int sq(int nn)
{
    int t1=1;
    for (int i=1;i<=nn;i++)
       t1*=10;
    return t1;
}
bool find1(int x11)
{
    while (x11>0)
    {
        int g=x11%10;
        if (g==0) return false;
        if (g>n) return false;
        x11=x11/10;
    }
    return true;
}
int main()
{
    cin>>n>>m;
    int k=sq(m);
    for (int i=2;i<=k;i++)
       a[i]=1;
    for (int i=2;i<=k;i++)
       if (a[i]==1)
         for (int j=2;j<=k/i;j++)
           a[i*j]=0;
    while (k>0)
    {
        if (a[k]==1) b[++t]=k;
        k--;
    }
    for (int i=1;i<=t;i++)
      if (sq(m-1)<=b[i]&&b[i]<sq(m))
        if (find1(b[i])) 
            ans++;
    cout<<ans;
    return 0;
}

文章来源:https://blog.csdn.net/wuwuwu2021/article/details/135301613
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。