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
#include <stdio.h>
#include <math.h>
int main()
{
    int n,m;
    //第几个素数
    scanf("%d",&n);
    scanf("%d",&m);
    int sum=0; //记第N个素数到第M个素数的和
    int a=0; //记录第几个素数
    int j=2; //记录第a个素数的值
    do
    {
        int  b=1;
        for(int i=2;i<=(int)sqrt(j) ;i++)
        {
            if((j%i==0)&&j>2)
            {
                b=0; //执行则当前J不是素数
                break; //跳出本次循环
            }
        }
        if(b) // 为TRUE时,当前J为素数,则对A计数
        {
            a++;
            if(a>=n && a<=m) //对在N到M个间的素数计入和SUM
            {
                sum=sum+j;
            }
        }
        j++;
    }while(a<m);
    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
#include<stdio.h>
int main()
{
    int x;
    scanf("%d",&x);
    if (x<0){
        printf("fu ");
        x=-x;
    }
    int mask=1;
    int t=x;
    while(t>9){
        t/=10;
        mask*=10;
    }
    do{
        int d=x/mask;
        switch(d){
        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;
        case 9:printf("jiu");break;
        case 0:printf("ling");break;
    }
        if(mask>9){
            printf(" ");
        }
        x%=mask;
        mask/=10;
    }while(mask>0);{
    printf("\n");
    }

return 0;
}