第四周:循环控制

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 <string.h>
#include <math.h>
#include <stdbool.h>

bool checkIsPrime(int number){
    if(number<2){
        return false;
    }
    for(int i=2;i<=sqrt(number);i++){
        if(number%i == 0){
            return false;
        }
    }
    return true;
}


int main(int argc, const char * argv[]) {
    int m,n;
    scanf("%d %d", &m,&n);
        int count = 0;
    int number = 2;
    int primeNums[200];
    while(1){
        if(checkIsPrime(number)){
            primeNums[count] = number;
            count++;
            if(count>=200){
                break;
            }
        }
        number++;
    }
    
    int total = 0;
    for (int i=m;i<=n;i++){
        total = total+primeNums[i-1];
    }
    printf("%d\n", total);
    return 0;
}

  

2
念整数(5分)

题目内容:

你的程序要读入一个整数,范围是[-100000,100000]。然后,用汉语拼音将这个整数的每一位输出出来。

如输入1234,则输出:

 

  1. yi er san si

 

注意,每个字的拼音之间有一个空格,但是最后的字后面没有空格。当遇到负数时,在输出的开头加上“fu”,如-2341输出为:

 

  1. fu er san si yi

 

 

输入格式:

一个整数,范围是[-100000,100000]。

 

输出格式:

表示这个整数的每一位数字的汉语拼音,每一位数字的拼音之间以空格分隔,末尾没有空格。

 

输入样例:

-30

 

输出样例:

fu san ling

时间限制:500ms内存限制:32000kb
 
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdbool.h>


int main(int argc, const char * argv[]) {
    const char* numberStrArr[] = {"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
    int number;
    scanf("%d", &number);
    if (number<0){
        printf("fu ");
        number = -number;
    }
    int outputNumberArr[6] = {0};
    int temp = number;
    int index = 0;
    do{
        int n  = temp%10;
        outputNumberArr[index] = n;
        index = index+1;
        temp = temp/10;
    }while (temp != 0);
    
    
    for(int i=index-1;i>=0;i--){
        printf("%s", numberStrArr[outputNumberArr[i]]);
        if(i>0){
            printf(" ");
        }
    }
    printf("\n");
}

  

posted @ 2016-10-06 12:08  ColaZhang  阅读(724)  评论(0编辑  收藏  举报