首页 > 编程知识 正文

ZZULIOJ 1071 分解质因子,分解质因子最大公约数

时间:2023-05-04 04:59:32 阅读:270153 作者:7

题目描述

将一个正整数分解质因数,例如,输入90,输出2 3 3 5。

输入

输入一个正整数n(2<=n<=2000)。

输出

从小到大输出n的所有质因子,每两个数之间空一格。

样例输入 20 样例输出 2 2 5 提示

注意,最后一个数后面没有空格!!

 

tips:质因数是指因数是质数,正整数的因式分解可以将正整数表示为一连串的质因子  ,任何正整数都有独一无二的质因子分解式

 

#include<stdio.h>#include<stdlib.h>#include<math.h>int isPrime(int num){ //判断是否是质数int i;for ( i = 2; i < num; i++){if (num%i == 0)break;}if (i==num){return 1;}else{return 0;}}int main(){int num, i,flag;scanf("%d",&num);while (num>1) // 20/2/2/5=1,当输入的数变为1已经输出全部质因子{for (i = 2; i < num+1; i++){if (isPrime(i)&&!(num%i)) //质数并且是因数{flag = i;break;}}num /= i;if (num==1){printf("%d",flag); //通过使用num是否为1判断是不是最后一个质因子}else{printf("%d ",flag);}}}

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。