标签:put not amp 素数环 int input ++ hdoj class
#include <iostream> #include <cmath> #include <cstring> using namespace std; int sushu[50]; int a[20],vis[20]; int check(int n) { int t=sqrt(n); for(int i=2;i<=t;i++) //小于等于开房数 { if(n%i==0) return 0; } return 1; } void dp(int m,int k) //k相当于步骤 { if(k==m) //k=m-1时也要算,加一 { if(sushu[a[m-1]+a[0]]) { cout<<1; for(int i=1;i<m;i++) cout<<‘ ‘<<a[i]; cout<<endl; } return; } for(int i=2;i<=m;i++) { if(!vis[i]&&sushu[a[k-1]+i]) { a[k]=i; vis[i]=1;//三者顺序不能改 dp(m,k+1); vis[i]=0; //不可放在括号外面 } } } int main() { a[0]=1; memset(sushu,0,sizeof(sushu)); memset(vis,0,sizeof(vis)); for(int i=1;i<=32;i++) { sushu[i]=check(i); } int n; int num=0; while(cin>>n) { num++; printf("Case %d:\n",num); dp(n,1); cout<<endl; } return 0; }
HDOJ 1016 Prime Ring Problem (素数环问题)
标签:put not amp 素数环 int input ++ hdoj class
原文地址:http://www.cnblogs.com/biggan/p/7457789.html