1 solutions
-
2
数据范围太小了
#include<bits/stdc++.h>//a+(a&-a) using namespace std; const int prime[]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97}; //打一个质数的表 int n; bool f=0; //判断是否为第一个因数 int main(){ cin>>n; while(n!=1){//不既约就继续枚 for(int i=0;i<25;i++){ //枚质数 int cnt=0; if(n%prime[i]==0){ while(n%prime[i]==0) n/=prime[i],cnt++; //还有这个因数就继续除 if(!f){//特判 f=1; if(cnt==1) cout<<prime[i]; else cout<<prime[i]<<'^'<<cnt; }else{ if(cnt==1) cout<<'*'<<prime[i]; else cout<<'*'<<prime[i]<<'^'<<cnt; } } } } return 0; }
- 1
Information
- ID
- 696
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 10
- Tags
- # Submissions
- 4
- Accepted
- 4
- Uploaded By