1059. Prime Factors (25)

来源:互联网 发布:order by sql 编辑:程序博客网 时间:2024/06/07 06:02

题目:https://www.patest.cn/contests/pat-a-practise/1059

代码:

#include<cstdio>  #include<cstring>  #include<cstdlib> #include<cmath>#include<algorithm>  using namespace std;  bool isprime(int n){   if(n==1) return false;   for(int i=2;i<=(int)sqrt(1.0*n);i++){     if(n%i==0) return false;   }   return true;}struct st{    int num,count;}s[15];int main()  {   int a[10010];int pos=0,n,total=0;for(int i=1;i<10010;i++){if(isprime(i)==true){    a[pos++]=i;}}scanf("%d",&n);if(n==1) printf("1=1");else{  printf("%d=",n);  for(int i=0;i<pos&&a[i]<=(int)sqrt(n*1.0);i++){  if(n%a[i]==0){  s[total].num=a[i];  s[total].count=0;  while(n%a[i]==0){  s[total].count++;  n/=a[i];  }  total++;  }  if(n==1) break;  }  if(n!=1){  s[total].num=n;  s[total++].count=1;  }  for(int i=0;i<total;i++){     if(i>0) printf("*"); printf("%d",s[i].num); if(s[i].count>1){ printf("^%d",s[i].count); }  }}    system("pause");  }                  

0 0
原创粉丝点击