HJ6. 质数因子
描述
功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 )
输入描述
输入一个整数
输出描述
按照从小到大的顺序输出它的所有质数的因子,以空格隔开。
示例1
输入:
180
输出:
2 2 3 3 5
C 解法, 执行用时: 1ms, 内存消耗: 280KB, 提交时间: 2020-11-29
#include <stdio.h> int main(void){ int n; while(scanf("%d", &n) == 1){ int tmp = n; for(int i = 2; i * i <= tmp && n >= i; i++){ while(n % i == 0){ printf("%d ", i); n /= i; } } if(n - 1) printf("%d ", n); putchar('\n'); } return 0; }
C 解法, 执行用时: 1ms, 内存消耗: 308KB, 提交时间: 2021-09-10
//从前面各个数循环整除到其平方根 #include<stdio.h> #include<math.h> int main(int argc,char* argv[]) { int test=2; int input; int sqrtinput; int temp; scanf("%d",&input); temp=input; sqrtinput=sqrt(input); while(temp !=1) { if(test>sqrt(temp)) { printf("%d ",temp); break; } if(temp % test ==0) { temp=temp/test; printf("%d ",test); } else{ test++; } } return 0; }