首页 > 其他 > 详细

进阶实验2-3.4 素因子分解 (20分)

时间:2020-03-07 19:32:58      阅读:164      评论:0      收藏:0      [点我收藏+]

技术分享图片

 

 解题思路:

1、由小到大寻找N的素因子i,

    1)当N%i==0时,让N=N/i,计数,循环直到N%i !=0

    2)此时判断N是否是1,如果N==1则直接退出,若N!=1 则继续寻找下一个素因子,重复操作1

#include <stdio.h>
#include <math.h>
typedef enum {false,true
             } bool;
bool IsPrime(int n) {
    if(n==0||n==1)
        return false;
    if(n>2) {
        int i;
        for(i=2; i<=sqrt(n)+1; i++) {
            if(n%i==0)return false;
        }
    }
    return true;
}
int main() {
    int x;
    scanf("%d",&x);
    int i,cnt;
    printf("%d=",x);
    int flag=0;
    if(x==1)
        printf("1");
    else {
        for(i=2; i<=x; i++) {
            if(x%i==0) {
                if(IsPrime(i)) {
                    flag=1;
                    printf("%d",i);
                    cnt=0;
                    while(x%i==0) {
                        x/=i;
                        cnt++;
                    }
                    if(cnt>1)
                        printf("^%d",cnt);
                    if(x!=1) {
                        printf("*");
                    } else
                        break;

                }
            }
        }
    }


    return 0;
}

 

进阶实验2-3.4 素因子分解 (20分)

原文:https://www.cnblogs.com/snzhong/p/12435806.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!