当前位置:首页 » 编程软件 » 编程质数因子

编程质数因子

发布时间: 2023-03-04 21:01:27

‘壹’ 求助c语言编程题目质因数分解

因为使用for循环从小到大判断其因数,而质数在由其组成的合数前面,所以如果i是n的因数,那么i一定是质因数,而且质因数会从小到大输出.

具体编程时,我们还应该使用n=n/i;,使for循环能快速满足终止条件,节省运行时间.用i--;,处理有多个重复质因数的情况.用count来统计相同质因数的个数.

具体的解释见注释

#include<stdio.h>

int main(){

//n输入的要分解的数,m前一个质因数,i循环变量

//flag第一个输出的质因数的标志变量,count统计有几个相同的质因数

int n,m,i,flag,count;

while(scanf("%d",&n)==1){//输入一个数n,直到一次输入的参数个数不等于1

flag=1;//第一次输出的质因数的标志为1

m=0;//前一个质因数赋初值为0

count=1;//相同质因数个数为1

for(i=2;i<=n;i++){ //for循环从2到n

if(n%i==0){//如果n能被i整除,则i为质因数

if(m==i){//如果质因数与前一个质因数相同

count++;//相同质因数个数加一

}else{//如果质因数与前一个质因数不同

if(flag==1){//如果是第一次输出

printf("%d",i);//输出第一个质因数

flag=0;//把标志变量置0,后面输出的质因数都不是第一个了

}else{//不是第一次输出

if(count==1){//有一个不相同的质因数输出

printf("*%d",i);//输出不相同的质因数

}else{//有多个相同的质因数输出

printf("^%d",count);//输出相同的质因数个数

count=1;//重置相同质因数个数为1

printf("*%d",i);//输出新的不同的质因数

}

}

}

m=i;//把当前质因数赋给存储前一个质因数的变量m

n=n/i;//改变循环范围n为n/i后的值

i--;//i减一,以处理有多个相同质因数的情况

}

}

if(count>1) printf("^%d",count);//如果有多个相同质因数,输出其个数

printf(" ");//换行

}

return 0;

}

‘贰’ c语言编程:求一个数的质因子

#include<stdio.h>
intmain()
{
inti,j,a[999999],x,y;
scanf("%d",&x);//读取
y=x;
for(i=2,j=0;i<=x;i++)//遍历质因数
{
if(x%i==0)//如果读取的数能够被质因数整除
{
a[j]=i;//将符合条件的质因数存到数组中
j++;//数组下标递增
x/=i;//重新赋值
i=2;//重新遍历
}
}
printf("%d=%d",y,a[0]);//输出原数、等号、第一个质因数
for(i=1;i<j;i++)
printf("×%d",a[i]);//如果存在第二个质因数,则继续输出
return0;
}

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:743
制作脚本网站 发布:2025-10-20 08:17:34 浏览:1007
python中的init方法 发布:2025-10-20 08:17:33 浏览:713
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:875
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:774
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1122
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:347
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:225
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:911
python股票数据获取 发布:2025-10-20 07:39:44 浏览:871