1、相乘法
写成几个质数相乘的形式(这些不重复的质数即为质因数),实际运算时可采用逐步分解的方式。
如:36=2*2*3*3 运算时可逐步分解写成36=4*9=2*2*3*3或3*12=3*2*2*3
2、短除法
从最小的质数除起,一直除到结果为质数为止。分解质因数的算式的叫短除法(┖是短除法的符号)
如:362┖36=182┖18=93┖3=3 结论36=2*2*3*3
对于广义空间不存在最大的质数。
对于被分解的合数(质数不能再分解)来说存在最大的质数。
按短除法从最小质数开始相除到结果为质数止,最后的质数为该数的最大质因数。
如36的最大质因数为3(质因数为2、3)
如8的质因数为2,105的质因数为3、5、7(最大质因数7)
#include <stdio.h>
int main(){
int n // 用户输入的整数
int i // 循环标志
printf("输入一个整数:")
scanf("%d",&n)
printf("%d=",n)
// n>=2才执行下面的循环
for(i=2i<=ni++){
while(n!=i){
if(n%i==0){
printf("%d*",i)
n=n/i
}else
break
}
}
printf("%d\n",n)
return 0
}
将一个正整数分解质因数。
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
1、如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
2、如果n>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
3、如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
C语言,是一种通用的、过程式的编程语言,广泛用于系统与应用软件的开发。具有高效、灵活、功能丰富、表达力强和较高的移植性等特点,在程序员中备受青睐。最近25年是使用最为广泛的编程语言。
C语言
C语言是由UNIX的研制者丹尼斯·里奇(Dennis Ritchie)于1970年 由 肯·汤普逊(Ken Thompson)所研制出的B语言的基础上发展和完善起来的。目前,C语言编译器普遍存在于各种不同的 *** 作系统中,例如UNIX、MS-DOS、Microsoft Windows及Linux等。C语言的设计影响了许多后来的编程语言,例如C++、Objective-C、Java、C#等。
编译调试成功:输入数N,回车会出分解的结果,输入0结束循环
#include<stdio.h>
void break_up(long *p,long n)
{
long m=n
int i=2
while(m!=1)
{
if(m%i==0)
{
if(*p!=i&&*p)
*(++p)=i
else
*p=i
m/=i
printf("%ld*",i)
}
else
{
i++
}
}
}
int main()
{
long n,a[100]
int i=0
while(scanf("%ld",&n)!=EOF&&n!=0)
{
for(i=0i<100i++)
a[i]=0
printf("%d*",n)
break_up(a,n)
i=0
printf("\b \n")
}
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)