uva - 10924 - Prime Words 解题报告

原题链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1865

题目大意:输入一串字符(只有大写字母和小写字母),在字符串中,a代表1,b代表2,以此类推,z代表26,接着A代表27,B代表28,以此类推,Z代表52,将该字符串的字母值相加总和为质数的话,即为Prime Words。

 1 #include<stdio.h>
 2 int f(char s){  //判断字符代表的值//
 3     int n;
 4     if(s>='a'&&s<='z')
 5     n=s-96;
 6     if(s>='A'&&s<='Z')
 7     n=s-38;
 8     return n;}
 9 int main(){
10     int f(char s);
11     char a[20];
12     int i,p,sum,k;
13     while(scanf("%s",a)!=EOF){
14     sum=0;
15     for(i=0;a[i]!='\0';i++){
16     p=f(a[i]);
17     sum+=p;}
18     k=sum/2;     
19     for(i=2;i<=k;i++)    //质数的判断//
20     if (sum%i==0) break;
21     if (i>k) printf("It is a prime word.\n");
22     else printf("It is not a prime word.\n");
23     }
24 }

 

posted @ 2013-02-22 11:33  sev_en  阅读(204)  评论(0编辑  收藏  举报