#include <stdio.h>
int DivisorNum (int n);
int PrimeNum (int n);
int Prime1 (int n);
void PrimeExpressionOf (int n);
void main ()
{
int n;
printf ("Please input a integer number x (x>=2):");
scanf ("%d", &n);
if (2>n)
return;
printf ("它有 %d个公约数\n", DivisorNum(n));
printf ("它有 %d个质数公约数\n", PrimeNum(n));
printf ("第一个质数公约数是: %d\n", Prime1(n));
printf ("%d的质数计算式是:\n", n);
PrimeExpressionOf (n);
putchar (10);
}
int DivisorNum (int n)// return the number of N's divisors
{
int num = 0, i;
for (i=1; i<=n; i++)
{
if (0 == n%i)
num++;
}
return num;
}
int PrimeNum (int n)// return the number of N's prime divisors
{
int num = 0, i;
for (i=1; i<=n; i++)
{
if ( (0 == n%i) && (2 == DivisorNum(i)) )
num++;
}
return num;
}
int Prime1 (int n)// return N's first prime divisor
{
int num = 0, i;
for (i=1; i<=n; i++)
if ( (0 == n%i) && (2 == DivisorNum(i)) )
{
num++;
if (1 == num)
return i;
}
}
void PrimeExpressionOf (int n)// return all the number of N's prime divisors
{
int x;
x = Prime1 (n);
printf ("%d\t", x);
if (n != x)
{
n /= x;
PrimeExpressionOf (n);
}
}
[编程练习] 整数的质数公约数 C语言
猜你喜欢
转载自blog.csdn.net/cp_oldy/article/details/88290654
今日推荐
周排行