思路
读入,处理maxn和minn,一个判断(筛表法)maxx-minn是不是质数,再进行输出。
#include<bits/stdc++.h> using namespace std; char s[101]; int b[101],sum[101],k; bool c[101]; bool f[300]; int cmp(int x,int y) { if(x>y) return 1; else return 0; } int main(){ f[1]=true; f[0]=true; for(int i=2;i*i<=200;i++){ for(int j=i;j<=200/i;j++) f[i*j]=true; }//筛表 cin>>s; int len=strlen(s); for(int i=0;i<len;i++) b[i+1]=s[i]; for(int i=1;i<=len;i++)//遍历字符串 if(c[b[i]]==0) { for(int j=i;j<=len;j++) if(b[i]==b[j]) sum[i]++; c[b[i]]=1; k++; }//统计maxn和minn。sum[1]是maxn,sum[2]是minn。 sort(sum+1,sum+1+len,cmp); if(f[sum[1]-sum[k]]==false){ cout<<"Lucky Word"<<endl<<sum[1]-sum[k]; } else{ cout<<"No Answer"<<endl<<0; }//输出 return 0; }
结束了………………