1
素數和(5分)
題目內容:
我們認為2是第一個素數,3是第二個素數,5是第三個素數,依次類推。
現在,給定兩個整數n和m,0<n<=m<=200,你的程序要計算第n個素數到第m個素數之間所有的素數的和,包括第n個素數和第m個素數。
輸入格式:
兩個整數,第一個表示n,第二個表示m。
輸出格式:
一個整數,表示第n個素數到第m個素數之間所有的素數的和,包括第n個素數和第m個素數。
輸入樣例:
2 4
輸出樣例:
15
時間限制:500ms內存限制:32000kb
個人解答(OJ已驗證可通過):
#include <stdio.h> int main() { int n,m,i; int number=2; int count=0; int sum=0; int IsPrime; scanf("%d %d",&n,&m); while(count<=m) { IsPrime=1; for(i=2;i<number;i++) { if(number%i==0) { IsPrime=0; break; } } if(IsPrime==1) { count++; if((count>=n)&&(count<=m)) sum+=number; } number++; } printf("%d\n",sum); return 0; }
2
念整數(5分)
題目內容:
你的程序要讀入一個整數,范圍是[-100000,100000]。然后,用漢語拼音將這個整數的每一位輸出出來。
如輸入1234,則輸出:
yi er san si
注意,每個字的拼音之間有一個空格,但是最后的字后面沒有空格。當遇到負數時,在輸出的開頭加上“fu”,如-2341輸出為:
fu er san si yi
輸入格式:
一個整數,范圍是[-100000,100000]。
輸出格式:
表示這個整數的每一位數字的漢語拼音,每一位數字的拼音之間以空格分隔,末尾沒有空格。
輸入樣例:
-30
輸出樣例:
fu san ling
時間限制:500ms內存限制:32000kb
個人解答(OJ已驗證可通過):
#include <stdio.h> int main() { int num,t; int digit; int mask=1; scanf("%d",&num); if(num<0) { printf("fu "); num=-num; } t=num; while(t>9) { t/=10; mask*=10; } while(mask>0) { digit=num/mask; switch(digit) { case 0: printf("ling"); break; case 1: printf("yi"); break; case 2: printf("er"); break; case 3: printf("san"); break; case 4: printf("si"); break; case 5: printf("wu"); break; case 6: printf("liu"); break; case 7: printf("qi"); break; case 8: printf("ba"); break; default: printf("jiu"); break; } if(mask>9) printf(" "); num%=mask; mask/=10; } printf("\n"); return 0; }