1059 Prime Factors
生活随笔
收集整理的這篇文章主要介紹了
1059 Prime Factors
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1059?Prime Factors?(25?分)
Given any positive integer?N, you are supposed to find all of its prime factors, and write them in the format?N?=?p?1???k?1????×p?2???k?2????×?×p?m???k?m????.
Input Specification:
Each input file contains one test case which gives a positive integer?N?in the range of?long int.
Output Specification:
Factor?N?in the format?N?=?p?1??^k?1??*p?2??^k?2??*…*p?m??^k?m??, where?p?i??'s are prime factors of?N?in increasing order, and the exponent?k?i???is the number of?p?i???-- hence when there is only one?p?i??,?k?i???is 1 and must?NOT?be printed out.
Sample Input:
97532468Sample Output:
97532468=2^2*11*17*101*1291解析:素數篩選,預處理一下就o了
#include<set> #include<map> #include<list> #include<queue> #include<deque> #include<cmath> #include<stack> #include<cstdio> #include<string> #include<bitset> #include<vector> #include<cstring> #include<cstdlib> #include<iostream> #include<algorithm> #include<bits/stdc++.h> using namespace std;#define e exp(1) #define p acos(-1) #define mod 1000000007 #define inf 0x3f3f3f3f #define ll long long #define ull unsigned long long #define mem(a,b) memset(a,b,sizeof(a)) int gcd(int a,int b) {return b?gcd(b,a%b):a; }const int maxn=5e5+5; int cnt=0; int prime[maxn],f[maxn+5]; void init() {for(int i=2; i<maxn; i++){if(!f[i]){prime[cnt++]=i;for(int j=i; j<maxn; j+=i){f[j]=1;}}} } int main() {init();ll n;scanf("%lld",&n);printf("%lld=",n);if(n==1){puts("1");return 0;}int count=0,flag=0;for(int i=0; i<cnt; i++){if(n==1)break;if(n%prime[i]==0){printf("%d",prime[i]);n/=prime[i];count=1;flag=0;while(n%prime[i]==0){if(n==0)break;if(!flag)printf("^");n/=prime[i];count++;flag=1;}if(flag)printf("%d",count);if(n!=1)printf("*");}}puts("");return 0; }?
總結
以上是生活随笔為你收集整理的1059 Prime Factors的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 树状数组(单点+区间的所有操作)
- 下一篇: 最优化学习笔记(一)——牛顿法(一维搜索