【1059】Prime Factors (25 分)

简介: 【1059】Prime Factors (25 分)【1059】Prime Factors (25 分)
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<algorithm>  
#include<map>
#include<vector>
#include<queue> 
using namespace std; 
//举例:97532468=2^2*11*17*101*1291
const int maxn=100010;
bool is_prime(int n){ //判断n是否为素数
  if(n==1) return false;
  int sqr =(int)sqrt(1.0*n);
  for(int i=2;i<=sqr;i++){
    if(n%i == 0)  return false;
  }
  return true;
}
int prime[maxn] ,pNum=0;
void Find_Prime(){  //求素数表
  for(int i=1;i<maxn;i++){
    if(is_prime(i) == true){
      prime[pNum++]=i;
    }
  }
}
struct factor{
  int x,cnt; //x为质因子,cnt为其个数
}fac[10];
int main(){   
  Find_Prime(); //此句请务必要记得写
  int n,num=0; //num为n的不同质因子的个数
  scanf("%d",&n);
  if(n==1)  printf("1=1");  //特判1的情况
  else{
    printf("%d=",n);
    int sqr=(int)sqrt(1.0*n); //n的根号
    //枚举n以内的质因子
    for(int i=0;i<pNum && prime[i] <=sqr;i++){
      if(n % prime[i] == 0) { //如果prime[i]是n的因子
        fac[num].x=prime[i]; //记录该因子
        fac[num].cnt=0;
        while(n % prime[i]==0) { //计算出质因子prime[i]的个数
          fac[num].cnt++;
          n/=prime[i];
        }
        num++;//不同质因子个数加1
      }
      if(n == 1)  break;//及时退出,节省点时间
    }
    if(n != 1){ //如果无法被根号n以内的质因子除尽
      fac[num].x=n;  //那么一定有一个大于根号n的质因子
      fac[num++].cnt=1;
    }
    //按格式输出结果
    for(int i=0;i<num;i++){
      if(i>0)  printf("*");
      printf("%d",fac[i].x);
      if(fac[i].cnt > 1){
        printf("^%d",fac[i].cnt);
      }
    }
  }
  system("pause");
    return 0;   
}
相关文章
|
安全 网络安全 数据安全/隐私保护
如何识别和防范网络诈骗?
识别和防范网络诈骗需要我们时刻保持警惕,仔细核实信息,保护好个人信息和财产安全,遇到可疑情况及时与相关机构或警方联系,共同打击网络诈骗行为。
1002 13
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的超市管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的超市管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
154 1
java202304java学习笔记第六十天-ssm-spring配置文件-依赖注入6
java202304java学习笔记第六十天-ssm-spring配置文件-依赖注入6
72 0
|
区块链 数据安全/隐私保护
|
1天前
|
数据采集 人工智能 安全
|
10天前
|
云安全 监控 安全
|
2天前
|
自然语言处理 API
万相 Wan2.6 全新升级发布!人人都能当导演的时代来了
通义万相2.6全新升级,支持文生图、图生视频、文生视频,打造电影级创作体验。智能分镜、角色扮演、音画同步,让创意一键成片,大众也能轻松制作高质量短视频。
879 150
|
15天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
1616 8
|
6天前
|
人工智能 前端开发 文件存储
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择
星哥带你玩转飞牛NAS,部署开源笔记TriliumNext!支持树状知识库、多端同步、AI摘要与代码高亮,数据自主可控,打造个人“第二大脑”。高效玩家的新选择,轻松搭建专属知识管理体系。
361 152