第三十一、三十二课:函数习题

练习1:素数个数

【题目描述】
编程求2~n(n为大于2的正整数)中有多少个素数。
【输入】
输入n(2≤n≤50000)。
【输出】
素数个数。
【输入样例】
10
【输出样例】
4

#include 
int sushu(int n);
int main()
{
    int n,i,s=0;
    scanf("%d",&n);
    for(i=3;i<=n;i++)
    {
        if(sushu(i)==1)
        s++;
    }
    printf("%d\n",s);
    return 0;
}
int sushu(int n)
{
    int i;
    for(i=2;i<=n/2;i++)
    {
        if(n%i==0)
        return 0;
    }
    return 1;   
}

练习:2亲和数

【题目描述】
自然数a的因子是指能整除a的所有自然数,但不含a本身。例如12的因子为:1,2,3,4,6。若自然数a的因子之和为b,而且b的因子之和又等于a,则称a,b为一对“亲和数” 。求最小的一对亲和数(a<>b)。
【输入】
(无)
【输出】
1行,分别为a和b(a 【输入样例】
(无)
【输出样例】
(无)

#include 
int yzzh(int n)
{
    int i,sum=1;
    for(i=2;i<=n/2;i++)
    {
        if(n%i==0)
        {
            sum+=i;
        }
    }
    return sum;
}
int main()
{
    int i=1;
    
    while(1)
    {
        if(i==yzzh(yzzh(i))&&i!=yzzh(i))
        {
            printf("%d %d",i,yzzh(i));
            break;
        }
        i++;
    }
}

简单算术表达式求值

两位正整数的简单算术运算(只考虑整数运算),算术运算为:
+,加法运算;
-,减法运算;
*,乘法运算;
/,整除运算;
%,取余运算。
算术表达式的格式为(运算符前后可能有空格):
运算数 运算符 运算数
请输出相应的结果。
【输入】
一行算术表达式。
【输出】
整型算数运算的结果(结果值不一定为2位数,可能多于2位或少于2位)。
【输入样例】
32+64
【输出样例】
96

#include 
int jsq(int a,char c,int b);
int main()
{
    int a,b;
    char c;
    scanf("%d%c%d",&a,&c,&b);
    printf("%d",jsq(a,c,b));
}
int jsq(int a,char c,int b)
{
    if(c=='+')
    return(a+b);
    if(c=='-')
    return(a-b);
    if(c=='*')
    return(a*b);
    if(c=='/')
    return(a/b);
    if(c=='%')
    return(a%b);
}

你可能感兴趣的:(第三十一、三十二课:函数习题)