輸入字串:a~z代表1~26;A~Z代表27~52,判斷整個字串的總和是不是質數

[心得]

1.sqrt()前面記得補(int)

2.!(sum%i)要記得括號,不然!sum會先做

3.在本題1也算質數,但沒差...

 

#include <stdio.h>
#include <string.h>
#include <math.h>

int main()
{
    char input[22];
    int sum,i,len,prime;
   
    while(gets(input)!=NULL)
    {
        sum=0;
        len=strlen(input);
       
        for(i=0;i<len;i++)
        {
            if(input[i]>='a')
                sum+=input[i]-96;
            else if(input[i]<='Z')
                sum+=input[i]-38;
        }
       
        for(i=2;i<=(int)sqrt(sum);i++)
            if(!(sum%i)) break;
       
            if(i<=(int)sqrt(sum))
                printf("It is not a prime word.\n");
            else
                printf("It is a prime word.\n");
    }
   
    return 0;
}

arrow
arrow
    全站熱搜

    RingsACM 發表在 痞客邦 留言(0) 人氣()