#include<iostream>
#include<bits/stdc++.h>
#include<cstring>
using namespace std;
const int N = 1000+10;
int Prime[N];
bool prime[N];
int cnt;
int b[130];
void Euler()
{
int n = 1000;
memset(prime , true , sizeof prime);
prime[1] = false;
prime[0] = false;
for(int i = 2 ; i <= n ; i++)
{
if(prime[i]) Prime[++cnt] = i;
for(int j = 1 ; j <= cnt && i * Prime[j] <= n ; j++)
{
prime[i * Prime[j]] = false;
if(i % Prime[j] == 0) break;
}
}
}
int main()
{
Euler();
string s;
cin>>s;
int minx = 100,maxn = 0;
for(int i = 0 ; i < s.size() ; i++)
{
b[s[i]]++;
}
for(int i = 0 ; i < s.size() ; i++)
{
maxn = max(maxn,b[s[i]]);
minx = min(minx,b[s[i]]);
}
if(prime[maxn - minx]) cout<<"Lucky Word"<<endl<<maxn-minx;
else cout<<"No Answer"<<endl<<maxn-minx;
return 0;
}
Euler
最新推荐文章于 2024-09-26 09:13:29 发布
该程序首先使用Euler筛法找出1000以内的素数,然后统计输入字符串中每个字符的出现次数,计算最大值和最小值之差。如果这个差值是素数,则输出LuckyWord和差值;否则,输出NoAnswer和差值。
摘要由CSDN通过智能技术生成