#include<bits/stdc++.h>
using namespace std;
string a;
int Prime_number(int x){
if(x<2)
return 0;
for(int i=2;i*i<=x;i++)
if(x%i==0) return 0;
return 1;
}
int main(){
long long sum=0;
while(1){
sum=0;
cout<<"Enter the number="<<endl;
getline(cin, a); int str=a.size();
for(int i=0;i<str;i++)
if(a[i]>='0'&&a[i]<='9')
sum*=10,sum+=a[i]-'0';
if(sum==0)
return 0;
cout<<"Prime? ";
if(!Prime_number(sum)){
cout<<"No!"<<endl;
if(sum>40000000){
cout<<"The number is tuu large!"<<endl<<endl;
continue;
}
cout<<sum<<"=";
bool f=1;
for (int i=2; i<=sum;i++){
int k=0;
while(sum%i==0)
k++,sum/=i;
if (k)
if (f){cout<<i<<'^'<<k;f=0;}
else cout<<'*'<<i<<'^'<<k;
}
cout<<endl;
}
else
cout<<"Yes!"<<endl;
cout<<endl;
}
return 0;
}
我把测试点2下载了下来,自己运行了一遍,感觉没有什么问题,为什么有错?(题解看不懂,我用尽全部毅力克制住自己要抄的念头)