#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"); 
	}
}