题目描述
功能:输入一个正整数,按照从小到大的顺序输出它的全部质数的因子(如180的质数因子为2 2 3 3 5 )
输入描述:
输入一个long型整数
输出描述:
按照从小到大的顺序输出它的全部质数的因子,以空格隔开。最后一个数后面也要有空格。ide
解法(C语言版):code
#include<stdio.h> #include<math.h> int isprime(int n) { int k, i; k = (int)sqrt(n); for(i = 2; i <= k; ++i) { if(n % i == 0) return 0; } return 1; } int main() { long data; long i; scanf("%ld", &data); i = 2; while(data != 1) { if(data % i == 0 && isprime(i)) { printf("%ld ", i); data /= i; } else i++; } return 0; }