#include "stdio.h"
int Fun(int x); //判断n是否为素数
void main()
{
while(1)
{
int N,n,flag,i;
printf("请输入一个正整数N:");
scanf("%d",&N);
n=N;
if(n<=1) //0,1都不是素质
printf("输入错误\n");
else
if(Fun(n)) //如果该整数是素数,则结果是他本身
printf("%d=%d",n,n);
else
{
printf("%d=",n);
while((!Fun(n))) //当是合数的时候可以分解
{
for(i=2;i<n/2+1;i++) //从2开始判断到该整数的一般,由于n整型数据我们可以多算一个
{
flag=n%i; //判断是否可以整除
if(Fun(i)&&(!flag)) //可以整除并且该数是质数,即满足条件2
{
printf("%d*",i);
n=n/i;
break;
}
}
}
printf("%d\n",n);
}
}
}
int Fun(int x)
{
int a;
for(a=2;a<=(x/2+1);a++)
{
if(x%a==0 && x!=2)
{
return 0;
break;
}
if(a==(x/2+1) && (x%a)!=0 ||x==2)
return 1;
}
}
将正整数分解质因数。质因数要满足两个条件:1)是这个数的因数;2)是质数(素数)----c语言初学练习
最新推荐文章于 2022-07-17 10:16:18 发布