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

Python016

c语言编程:求一个数的质因子,第1张

#include<stdio.h>

int main()

{

   int i, 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])   //如果存在第二个质因数,则继续输出

   return 0

}

求出区间[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

}

分解质因数牛逼方法