#include<stdlib.h>
#include<string.h>
unsigned int m=2
unsigned int cnt=1
void Factor(int n, char *msg, char printYes)
int main()
{
char s[100]={0}
char flag='y'
printf("------求整数的因式分解------\n请输入正整数m(>1):")
scanf("%u", &m)
printf("打印详细分解情况吗?[y|n,回车打印]")
scanf("%*c%c",&flag)
if(m<1)
{
printf("error input!\n")
exit(-1)
}
if(flag!='n')
printf("%d = %d \n", m,m)
Factor(m, s,flag)
if(cnt==1)
printf("\n%d是素数\n",m)
printf("\n------")
printf("一共有%d种", cnt)
printf("------\n")
return 0
}
void Factor(int n, char *msg,char printYes)
{
char s2[100]={0}//保存当前分解的部分结果
if(n==1)
return
for(int i=2i<ni++)
{
if (n%i==0)
{
if(n==m)
sprintf(msg, "%d = ", m)
sprintf(s2,"%s %d * ",msg, i)//因式分解部分结果保存在字符串s2中
if(printYes!='n')
printf("%s %d\n",s2,n/i)//打印结果(包括最后一个因子)
Factor(n/i,s2,printYes)
cnt++
}
}
}
求出区间[a,b]中所有整数的质因数分解。
输入
输入两个整数a,b。
输出
每行输出一个数的分解,形如k=a1*a2*a3...(a1<=a2<=a3...,k也是从小到大的)(具体可看样例)。
样例输入
3 10
样例输出
3=3
4=2*2
5=5
6=2*3
7=7
8=2*2*2
9=3*3
10=2*5
蓝桥杯
#include<stdio.h>
#include<math.h>
int factor(int n)
{
int i,j=(int)sqrt(n)
if(n%2==0) return 2
for(i=3i<=ji++)
if(n%i==0) return i
return n
}
int main()
{
int i, j, k, m, n
scanf("%d%d", &m, &n)
for(i=mi<=ni++)
{
j=factor(i)
k=i/j
printf("%d=%d",i,j)
while(k>1)
{
j=factor(k)
k=k/j
printf("*%d", j)
}
printf("\n")
}
return 0
}
分解质因数牛逼方法
#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#等。