View Code of Problem 91

#include <stdio.h>
#include <math.h>
int Issu(int n)
{
    int i;
    if(n == 1 || n == 0)
        return 0;
    else
    {
        for(i = 2;i <= sqrt(n);i++)
        {
            if(n % i == 0)
                return 0;
        }
        return 1;
    }
}

int main(void)
{
    int i,j,k = 0,arr[1000]={0},a[100] = {0};
    for(i = 1;i < 1000;i++)
    {
        if(Issu(i))
            arr[k++] = i;
    }
    int m;
    while(scanf("%d",&m) != EOF)
    {
        int t = m;
        int index = 0,flag = 0;
        while(m != 1)
        {
            if(m % arr[index] == 0)
            {
                a[flag++] = arr[index];
                m /= arr[index];
            }
            else
                index++;
        }
        printf("%d=",t);
        for(i = 0;i < flag;i++)
        {
            if(i == flag - 1)
                printf("%d\n",a[i]);
            else
                printf("%d*",a[i]);
        }
    }
    return 0;
}

Double click to view unformatted code.


Back to problem 91