ACM有些題目會把1定義為質數,
但1明明就不是質數,
真瞎,快改吧!
/* ACM 10924 Prime Words * mythnc * 2011/11/18 09:56:41 * run time: 0.004 */ #include <stdio.h> #include <string.h> #include <math.h> #define MAXCHAR 21 #define TRUE 1 #define FALSE 0 int sumw(char *); int prime(int n); int main(void) { char str[MAXCHAR]; while (scanf("%s", str) == 1) { if (prime(sumw(str))) printf("It is a prime word.\n"); else printf("It is not a prime word.\n"); } return 0; } /* sumw: sum of the word letters */ int sumw(char *s) { int i, sum; for (i = sum = 0; i < strlen(s); i++) if (s[i] >= 'a' && s[i] <= 'z') sum += s[i] - 'a' + 1; else if (s[i] >= 'A' && s[i] <= 'Z') sum += s[i] - 'A' + 27; return sum; } /* prime: return TRUE if n is prime, * else return FALSE */ int prime(int n) { int i; if (n == 2) return TRUE; if (n % 2 == 0) return FALSE; for (i = 3; i <= sqrt(n); i += 2) if (n % i == 0) return FALSE; return TRUE; }
沒有留言:
張貼留言