目录
—、质因数介绍和代码引用
前言
质因数分解要先区分哪些是素数,是素数则直接输出
—、质因数介绍和代码引用
1.引入库
代码如下:
#include<stdio.h>
int time1(int x);
void time2(int x);
int main()
{
int a,b,i;
scanf("%d%d",&a,&b);
for(i=a;i<=b;i++)
{
if(time1(i)==1)
printf("%d=1*%d",i,i);
else time2(i);
printf("\n");
}
}
int time1(int x)
{
int i;
if(x==2)
return 1;
for(i=2;i<x;i++)
{
if(x%i==0)
return 0;
else
return 1;
}
}
void time2(int x){
int i,j=0,k=1,f=0,ans[1000],d=x;
while(1){
for(i=2;i<x;i++){
if(time1(d)){
ans[j]=d;
j++;
f=1;
break;
}
if(d%i==0){
ans[j]=i;
j++;
d=d/i;
break;
}
}if(f)
break;
}
printf("%d=",x);
for(k=0;k<j;k++){
printf("%d",ans[k]);
if(k==j-1)
{
break;
}
printf("*");
}
}
2.读入数据
4 55
4=2*2
5=1*5
总结
—.函数调用分为两种,1.以返回值返回主函数或自设函数,如本题中在main函数中多次调用time1函数的return值在if语句中用time1的 2.无返回值,直接调用自设函数的运行结果,这种情况在调用的时候多采用直接写出函数的形式,如本题中main函数else后直接调用time2 3.函数在调用是形参是实参的值,如本题中int x=i 。
二.题目要求是要写出a到b的所有整数的分解,这些数无法每一个都去定义,因此需要数组进行初始储存。
三.分解质因数的大致思路是:1.找出素数输出。
2.找出最小质因数(2 3...)。
3.通过循环进行相除(找最小公因数)但是因为质数是从2开始的,因此循环从2开始。
4.对x进行赋值(x=x/i)。