第五周:函数

1

分解质因数(5分)

题目内容:

每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数。比如,6可以被分解为2x3,而24可以被分解为2x2x2x3。

现在,你的程序要读入一个[2,100000]范围内的整数,然后输出它的质因数分解式;当读到的就是素数时,输出它本身。

输入格式:

一个整数,范围在[2,100000]内。

输出格式:

形如:

  1. n=axbxcxd

  1. n=n

所有的符号之间都没有空格,x是小写字母x。

输入样例:

  1. 18

输出样例:

  1. 18=2x3x3

时间限制:500ms内存限制:32000kb

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdbool.h>

void printSplitNumber(int number);

void printSplitNumber(int number){
    for(int i=2;i<=sqrt(number);i++){
        if(number%i == 0){
            printf("%dx",i);
            printSplitNumber(number/i);
            return;
        }
    }
    printf("%d",number);
}

int main(int argc, const char * argv[]) {
    int number;
    scanf("%d", &number);
    printf("%d=",number);
    printSplitNumber(number);
    printf("\n");
    return 0;
}

  

2

完数(5分)

题目内容:

一个正整数的因子是所有可以整除它的正整数。而一个数如果恰好等于除它本身外的因子之和,这个数就称为完数。例如6=1+2+3(6的因子是1,2,3)。

现在,你要写一个程序,读入两个正整数n和m(1<=n<m<1000),输出[n,m]范围内所有的完数。

提示:可以写一个函数来判断某个数是否是完数。

输入格式:

两个正整数,以空格分隔。

输出格式:

其间所有的完数,以空格分隔,最后一个数字后面没有空格。如果没有,则输出一个空行。

输入样例:

1 10

输出样例:

6

时间限制:800ms内存限制:32000kb

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdbool.h>

bool checkIsWan(int number){
    int total = 0;
    for (int i=1;i<=sqrt(number);i++){
        if(number%i == 0){
            int nextNum = number/i;
            if(i!=number){
                total = total + i;
            }
            if(nextNum!=number && nextNum != i){
                total = total + nextNum;
            }
            if(total>number){
                return false;
            }
        }
    }
    if(total == number){
        return true;
    }
    return false;
}

int main(int argc, const char * argv[]) {
    int m,n;
    scanf("%d %d", &m, &n);
    int flag = 0;
    for(int i=m;i<=n;i++){
        if(checkIsWan(i)){
            if(flag == 1){
                printf(" ");
            }else{
                flag = 1;
            }
            printf("%d",i);
        }
    }
    printf("\n");
    return 0;
}

  

时间: 2024-08-16 14:29:31

第五周:函数的相关文章

201405644 嵌入式程序设计第五周学习总结

嵌入式课程设计第五周学习总结 标准 I/O 编程 标准 I/O 提供流缓冲的目的是尽可能减少使用 read()和 write()等系统调用的数量.标准 I/O 提供了 3 种类型 的缓冲存储.全缓冲.行缓冲.不带缓冲. 打开文件 打开文件有三个标准函数,分别为:fopen().fdopen()和 freopen().其中 fopen()可以指定打开文件的路径和模式,fdopen()可以指定打开的文件描述符和模式,而 freopen() 除可指定打开的文件.模式外,还可指定特定的 I/O 流. f

2014025689 《嵌入式系统程序设计》第五周学习总结

<嵌入式系统程序设计>第五周学习总结 一.6.5(标准I/O编程)主要涉及的函数及知识点 标准的I/O的三种缓冲存储:全缓冲.行缓冲.不带缓冲. 1. 全缓存:当填满标准I/O缓存后才进行实际的I/O操作 2. 行缓存:当输入或输出中遇到行结束符时,标准I/O库执行I/O操作 3. 不带缓存:标准I/O库不对字符进行缓冲 打开文件的三个标准函数:  fopen().fdopen()和 freopen(). -fopen()可以指定打开文件的路径和模式 函数原型:FILE * fopen(con

20145307《信息安全系统设计基础》第五周学习总结PT2

20145307<信息安全系统设计基础>第五周学习总结PT2: 教材学习内容总结 之前有第一部分学习总结: http://www.cnblogs.com/Jclemo/p/5962219.html 以下为第二部分 执行汇编命令:gcc –s xxx.c –o xxx.s反汇编命令:objdump –d xxx 64位处理器得到32代码的命令:gcc –m32 –s xxx.c Ltme: 1.三种操作数: 立即数:常数值.表示为$c标准表示的整数. 寄存器:表示某个寄存器的内容. 存储器:根据

20145326蔡馨熠《信息安全系统设计》第五周学习总结

教材学习内容总结 书上有的内容我就不重复赘述了,只需要将部分重要的知识点归纳总结一下. 1.使用GDB的堆栈跟踪功能(GDB中有很多针对调用堆栈的命令,都需要一个目标栈帧,例如打印局部变量值的命令) 在栈帧之间切换 frame args 将当前栈帧设置为args(编号或Address)指定的栈帧,并打印该栈帧的简要信息. up n 向上回退n个栈帧(更外层),n默认为1. down n 向下前进n个栈帧(更内层),n默认为1. 打印栈帧信息(不移动栈帧) frame 打印当前栈帧的简要信息. i

学习进度条第五周

  第五周 所花时间 20 代码量 500 博客量 2 了解的知识点 依旧以复习以前的知识点为主,了解并熟练以前遗漏的知识点. 包括数组,函数,类和对象等相关知识

信息安全设计基础第五周学习总结

信息安全系统设计基础第五周学习总结 [学习时间:10小时] [学习内容:第三章:程序的机器表示] 一.教材内容 1.X86 寻址方式的变化: 1 DOS时代的平坦模式,不区分用户空间和内核空间,很不安全: 2 8086的分段模式: 3 IA32的带保护模式的平坦模式 2.机器编程的两种抽象: 1)指令集体系结构(Instruction set architecture,ISA)——定义指令格式以及每条指令执行之后对状态的影响.大多数ISA将程序行为描述成按顺序执行的: 2)虚拟地址 3.一些处理

20155335俞昆《Java程序设计》第五周总结

#  20155335    <Java程序设计>第五周学习总结 ##  教材学习内容总结 ##  教材学习中的问题和解决过程 对于异常处理,程序中总有意想不到的状况所引发的的错误,Java中的错误也以对象方式呈现为Java.lang.Throwable的各种子类实例. 首先,Try和catch可用来捕捉程序中的错误,如果出现Java.util.InputMismatchExpection错误信息,表示不符合Scaneer对象预期,因为下一个字符串本身要代表数字,由Scaneer对象预期:使用

20145317《信息安全系统设计基础》第五周学习总结2

20145317<信息安全系统设计基础>第五周学习总结2 教材学习内容总结 X86 寻址方式经历三代: DOS时代的平坦模式,不区分用户空间和内核空间,很不安全. 8060的分段模式 IA32的带保护模式的平坦模式 程序编程 1.代码含义 gcc -01 -o p p1.c -01 表示使用第一级优化.优化的级别与编译时间和最终产生代码的形式都有关系,一般认为第二级优化-02 是较好的选择. -o 表示将p1.c编译后的可执行文件命名为p 2.机器级编程的两种抽象 指令集结构ISA 是机器级程

解题报告——2018级2016第二学期第五周作业排座椅

解题报告--2018级2016第二学期第五周作业 F:排座椅 描述 上课的时候总会有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情.不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来 之后,只有有限的D对同学上课时会交头接耳.同学们在教室中坐成了M行N列,坐在第i行第j列的同学的位置是(i,j),为了方便同学们进出,在教室中设 置了K条横向的通道,L条纵向的通道.于是,聪明的小雪想到了一个办法,或许可以减少上课时学生交头接耳的问题:她打算重新摆放桌椅,改变同学们桌椅

20145123刘森明《Java程序设计》第五周学习总结

代码托管地址:http://git.oschina.net/null_289/Java2016 教材学习内容总结 异常处理 •使用try.catch: Java中所有错误都会被包装成对象,可以尝试(try)执行程序并捕捉(catch)代表错误的对象后做一些处理.使用了try.catch语法,JVM会尝试执行try区块中的程序代码,如果发生错误,执行程序会跳离错误发生点,然后比对catch括号中声明的类型,是否符合被抛出的错误对象类型,如果是就执行catch中的程序代码. •异常继承架构:错误会被