#include<bits/stdc++.h>
#include<windows.h>
#define int long long
using namespace std;
int n,a[1000001];
int pd(int x){
if(x%2==0&&x!=2) return 0;
if(x<=1) return 2;
for(int i=3;i<=sqrt(x);i+=2){
if(x%i==0) return 0;
}
return 1;
}
void fz(int x){
if(pd(x)==1) cout<<"本数是质数。\n";
else if(pd(x)==2) cout<<"本数既不是质数,也不是合数。\n";
else{
int sum=0,cnt=0;
cout<<"本数是合数,它的因数有:";
for(int i=1;i<=sqrt(x);i++){
if(x%i==0){
a[++cnt]=i;
if(i!=x/i) a[++cnt]=x/i;
}
}
sort(a+1,a+cnt+1);
for(int i=1;i<=cnt;i++) cout<<a[i]<<" ";
cout<<"共有"<<cnt<<"个因数。\n";
}
}
signed main(){
cout<<"判断质数器,作者:2025tyoi0293\n";
cout<<"祝您使用愉快!\n";
system("pause>nul");system("cls");
while(1){
cout<<"请输入一个数,输入-1退出:\n";
cin>>n;
if(n==-1){
cout<<"感谢游玩!";
Sleep(500);
return 0;
}
fz(n);
system("pause>nul");system("cls");
}
}