求一个数的因数

因数是指整数 a 除以整数 b (b≠0) 的商正好是整数而没有余数,此时称 b 是 a 的因数。例如,6÷2 = 3,商是整数且没有余数,所以 2 是 6 的因数;同时,6÷3 = 2,所以 3 也6的因数;

因数的性质:1.任何整数都有因数 1 和它本身 

                    2.因数是成对出现的:如果 a 能被 b 整除,即 a÷b = c(a、b、c 均为整数),那么 b 和 c 就是 a 的一对因数。以 24 为例,24÷2=12,2 和 12 是 24 的一对因数;24÷3=8,3 和 8 也是 24 的一对因数。

                    3.一个数的因数个数是有限的:一个数的因数是有限的,最小的因数是 1,最大的因数是它本身。比如 18 的因数有 1、2、3、6、9、18,共 6 个。

#include <stdio.h>

// 获取用户输入的正整数
int get_number()
{
    int number = 0;
    while (1)
    {
        printf("请输入一个大于0的数: ");
        if ((scanf("%d", &number) == 1) && (number > 0))
        {
            printf("输入正确!\n");
            return number;
        }
        else
        {
            printf("输入有误,请重新输入一个大于0的数。\n");
            while (getchar() != '\n'); // 清空输入缓冲区
        }
    }
}

// 求一个整数的所有因数
void judge_factor(int number)
{
    printf("%d 的所有因数为: ", number);

    // 遍历从 1 到 number 的所有数
    for (int i = 1; i <= number; i++)
    {
        // 如果 number 能被 i 整除,则 i 是 number 的因数
        if (number % i == 0)
        {
            printf("%d ", i);
        }
    }
    printf("\n");
}

int main()
{
    int num = get_number(); // 获取用户输入
    judge_factor(num);      // 求所有因数
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值