• Jesse's Code


    题目描述

    Jesse是个数学迷,他最喜欢研究“哥德巴赫猜想”,因此他的计算机密码也都采用素数。 但一直用同一个密码是不安全的,所以他要经常更换他的密码。但他只允许自己的密码中出现某些数字,且密码的每一位都不相同。比如1 2 4,则有6种情况124 142 214 241 412 421。其中241 和 421为素数。为了获得他的密码(他的机器上存放了第4届舜禹杯大学生程序设计竞赛的题目!),需要生成一个字典来帮助我们破解。 请你来编写一个程序帮助我们(因为众所周知的原因我们迫切需要获得这些题目)。

    输入

    • Line 1:密码的位数n (1 ≤ n ≤ 9)。
    • Line 2:1->n个不重复的整数序列 (1 ≤ x[i] ≤ 9).
    输入0结束。

    输出

    按从小到大顺序输出所有的结果。 如果一个结果也没有,输出“NONE”。 每组数据后面跟随一个空行。

    样例输入

    3
    1 2 4
    0

    样例输出

    241
    421
    递归,数组化为整数,然后判断是否是素数,注意用递归是,无结果输出NONE不好整,看个人啦,设置成static就可以AC了。
    #include<iostream>
    #include<algorithm>
    #include<cstring>
    #include<cstdio>
    #include<cmath>
    using namespace std;
    long long a[15];
    long long is_prime(long long x)//素数判断
    {
      if(x==1 || x==4) return 0;
      if(x==2 || x==3) return 1;
      long long o=sqrt(x);
      for(long long i=2;i<=o;i++)
      {
        if(!(x%i)) return 0;
      }
      return 1;
    }
    int is_cout(long long a[],int m,int count)//输出处理
    {
      long long s=0;
      for(int i=0;i<m;i++)
      {
        s=s*10+a[i];
      }
      if(is_prime(s)){
        cout<<s<<endl;
        count++;
      }
      return count;
    }
    int is_arrangement(long long a[],int k,int m,int count)//数组递归
    {
      if (k==m)
      {
       count=is_cout(a,m,count);
      }
      else
      {
        for(int i=k;i<m;i++)
        {
          swap(a[k],a[i]);
          count=is_arrangement(a,k+1,m,count);
          swap(a[k],a[i]);
        }
      }
      return count;
    }
    int main()
    {
      int n,mm;
      while((cin>>n) && n)
      {
        static int count=0;
        for(int i=0;i<n;i++)
        {
          cin>>a[i];
        }
        sort(a,a+n);
        mm=is_arrangement(a,0,n,count);//判断是否有输出结果
        if(mm==0) cout<<"NONE"<<endl;
        cout<<endl;
        memset(a,0,sizeof(a));
      }
      return 0;
    }
  • 相关阅读:
    MVC3分页
    ASP.NET MVC导入excel到数据库,下载文件
    使用JS获取客户端MAC地址
    关于mschart控件在mvc项目中的webform里面显示不出图片的问题
    difference between "on" and "where" when using left/right join query
    Will static methods over multithreading cause threadsafe problem?
    const VS readonly in detail
    一个编码引发js错误的问题
    分享一个基于FileSystemWatcher的文件自动备份程序
    Back/Forward and Refresh in browser
  • 原文地址:https://www.cnblogs.com/shinianhuanniyijuhaojiubujian/p/6612207.html
Copyright © 2020-2023  润新知