【C/C++】判断并计算一个数的素因子

【C/C++】判断并计算一个数的素因子

根据需求,使用 C/C++ 执行判断一个数是否为素数,如果不是素数则计算得出它的素因子。

图片[1]-【C/C++】判断并计算一个数的素因子 - 梦闯天下
#include <stdio.h>
#include <math.h>
bool isFst = true, isPrime = true;

bool is_prime(long long int num) {
    if (num <= 1 || num >= pow(10,9)) {
        return false;
//        若数值超过规定或小于等于1,则直接返回非质数。
        
    }   else if (!(num % 2) && num != 2) {
        return false;
        
    }   else {
        for (int i = 2; i <= sqrt(num); i++) {
            if (num % i == 0) {
                return false;
            }
        }
    }
    //判断如果该数可以被整除,返回非质数。
    
    return true;
    //默认返回是质数。
}

int main() {
    int T = 0;
    scanf("%d", &T);
    
    while (T--) {
        long long int x = 0;
        scanf("%lld", &x);
        isPrime = is_prime(x);
        
        if (isPrime) {
            printf("isprime\n");
        } else {
            printf("noprime\n");
        }
//        素数判断
        
        if (x <= 1 || isPrime) {
            printf("%lld", x);
        }   else {
            for (long long int i = 2; i <= x; i++) {
                if (x % i == 0 && is_prime(i)) {
                    if (!isFst) {
                        printf(" ");
                    }
                    printf("%lld", i);
                    isFst = false;
                }
            }
        }
//        素因子输出
        
        printf("\n");
        isFst = true;
    }
    
    return 0;
}
    © 版权声明
    THE END
    分享和支持
    点赞8 分享
    评论 抢沙发
    头像
    留下评论,见证当下。
    提交
    头像

    昵称

    取消
    昵称表情代码快捷回复

      请登录后查看评论内容