【華爲機試練習】質數因子

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