解题思路:1.输入字符串;2.统计26个字母出现的次数并存放到数组num中;3.使用sort函数排序;4.查找第一个num中不为0的数字num[i];5.m=num[25]-num[i]就是所求maxn-minn;6.判断m是否是素数即可。
参考代码:
#include <bits/stdc++.h> using namespace std; const int N=105; int prime(int n) { int k=sqrt(n); if(n<2) return 0; for(int i=2;i<=k;i++) if(n%i==0) return 0; return 1; } int main() { char a[N]; int num[26]={0}; int i; memset(num,0,sizeof(num)); scanf("%s",a); for(i=0;a[i];i++) { num[a[i]-'a']++; } sort(num,num+26); for(i=0;i<26;i++) if(num[i]!=0) break; int m=num[25]-num[i]; if(prime(m)) { cout<<"Lucky Word"<<endl; cout<<m; } else { cout<<"No Answer"<<endl; cout<<0; } return 0; }
0.0分
4 人评分