C语言 因式分解

Python017

C语言 因式分解,第1张

#include<stdio.h>

#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#等。