首页 > 其他 > 详细

计蒜客 蓝桥模拟 B.素数个数

时间:2018-03-31 19:54:49      阅读:181      评论:0      收藏:0      [点我收藏+]

0,1,2,3?70,1,2,3 \cdots 70,1,2,3?7 这 888 个数组成的所有整数中,质数有多少个(每个数字必须用到且只能用一次)。

提示:以 000 开始的数字是非法数字。

 

代码:

#include <iostream>
#include <cstdio>
using namespace std;
int c,vis[10];
int ispri(int n)
{
    if(n==2||n==3)return 1;
    if(n%6!=1&&n%6!=5)return 0;
    for(int i=5;i*i<=n;i+=6)
        if(n%i==0||n%(i+2)==0)return 0;
    return 1;
}
void dfs(int d,int k)
{
    if(k == 8)
    {
        if(ispri(d))c ++;
        return;
    }
    for(int i = 0;i <= 7;i ++)
    {
        if(!vis[i])
        {
            vis[i] = 1;
            dfs(d * 10 + i,k + 1);
            vis[i] = 0;
        }
    }
}
int main()
{
    for(int i = 1;i <= 7;i ++)
    {
        vis[i] = 1;
        dfs(i,1);
        vis[i] = 0;
    }
    cout<<c;
}

 

计蒜客 蓝桥模拟 B.素数个数

原文:https://www.cnblogs.com/8023spz/p/8683792.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!