分解一个整数为素数的乘积形式

来源:互联网 发布:淘宝店铺怎么卖东西 编辑:程序博客网 时间:2024/05/26 09:53
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#include<iostream>
#define inf 0x3f3f3f
using namespace std;
int main()
{
    int x,n,t,a[10000],m;
    while(scanf("%d",&n) != EOF)//先打印到该整数的素数表 
      {
         x = 1;
         for(int i = 2 ;i <= n ;i++)
           {
              t = 0;
              for(int j = 2 ;j <= sqrt(i) ;j++)
                {
                    if(i % j == 0){t = 1;break;}
                }
              if(t == 0)
                {
                    a[x] = i;
                    x++;
                }
           }
         scanf("%d",&m);//输入要分解的整数 
         for(int i = 1 ;m > 1 ;i++)
           {
              if(m % a[i] == 0 && m/a[i] == 1)
                {
                   m = m/a[i]; 
                   printf("%d",a[i]);
                }
              if(m % a[i] == 0 && m/a[i] != 1)
                {
                   m = m/a[i];
                   printf("%d*",a[i]);
                   i--;
                }
              
           }
      }
    
    
    return 0;
}
原创粉丝点击