題目描述
功能:輸入一個正整數,按照從小到大的順序輸出它的全部質數的因子(如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; }