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 }