为了相同的前缀-测谎仪

为了相同的前缀-测谎仪

Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^

题目描述

俗话说的好,国有国法,家有家规。比如RE大神的家规就挺严的。RE的媳妇为了看RE说的话是否撒谎,就自己写了个测谎仪程序,(由于事发突然,此处省略10个字),已知RE说的话是不带停顿的字符串(即不带空格。。),除了小写字母就是大写字母,如果小写字母的个数比大写字母的个数多而且多的差值数是一个素数,那么说明RE没撒谎,测谎仪会显示“YES!!!”,否则就说明RE撒谎了,测谎仪会显示“NO!!!”。若RE被发现撒谎,那就只能面临跪键盘的命运了。
FF提示:1不是素数。

输入

 多组输入。每组输入是一行不带空格的字符串,且只由大写和小写字母组成。1<=字符串长度<=200.

输出

 输出“YES!!!”or“NO!!!”。

示例输入

REhaoshuai
REisnvsheng

示例输出

NO!!!
YES!!!

提示

 

来源

 ff

示例程序

 
#include<stdio.h>  
#include<string.h>  
#include<ctype.h>  
int main()  
{  
    int i,j,n,m,k,t;  
    int b[46]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,56,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197};  
    char a[300];  
    while(scanf("%s",a)==1)  
    {  
        j=0;  
        m=0;  
        k=0;  
     n=strlen(a);  
     for(i=0;i<n;i++)  
     {  
         if(islower(a[i]))  
             j++;  
         if(isupper(a[i]))  
             m++;  
     }  
     for(i=0;i<46;i++)  
     {  
         if(b[i]==(j-m))  
             k=1;  
     }  
     if((j-m>0)&&k==1)  
         printf("YES!!!\n");  
     else  
         printf("NO!!!\n");  
    }  
}  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值