2 条题解
-
1
#include <stdio.h> #include <string.h> int main(){ char a[105]; while (scanf ("%s",a)!=EOF){ int n=strlen(a); int b[150]={0}; for (int i=0;i<=n-1;i++){ b[a[i]]++; } int max=b[97]; for (int i=97;i<=122;i++){ if (b[i]>max){ max=b[i]; } } int min=max; for (int i=97;i<=122;i++){ if (b[i]!=0&&b[i]<min){ min=b[i]; } } int m=max-min; int m1=1; if (m<2){ m1=0; } else if (m>2){ for (int i=2;i<=m-1;i++ ){ if (m%i==0){ m1=0; break; } } } if (m1==0){ printf ("No Answer\n"); printf ("0\n"); } else { printf ("Lucky Word\n"); printf ("%d\n",m); } } return 0; } -
0
#include <stdio.h> #include <string.h> #include <iostream> #include <algorithm> using namespace std; int n=1000; int prime[10000]; bool isprime[10000]; int cnt=0; void oula(int); int main(){ char a[101]; scanf("%s",a); int x=strlen(a); int b[26]={0}; for(int i=0;i<x;i++){ b[a[i]-'a']++; } sort(b,b+26); int min; for(int i=0;i<26;i++){ if(b[i]>0){ min=b[i]; break; } } int max=b[25]; int s=max-min; if(s==0){ printf("No Answer\n0"); } else{ oula(n); int p=0; for(int i=1;i<=n;i++){ if(s==prime[i]){ p=1; break; } } if(p==1){ printf("Lucky Word\n%d",s); } else{ printf("No Answer\n0"); } } return 0; } void oula(int){ isprime[0]=isprime[1]=1; for(int i=2;i<=n;i++){ if(isprime[i]==0){ prime[++cnt]=i; } for(int j=1;j<=cnt&&i*prime[j]<=n;j++){ isprime[i*prime[j]]=1; if(i%prime[j]==0){ break; } } } }
- 1
信息
- ID
- 402
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 6
- 标签
- (无)
- 递交数
- 35
- 已通过
- 12
- 上传者