#include<iostream>
using namespace std;
int main()
{
int a,b,c,d,e=0;
cin>>a;
if(a>2)
{
for(int i=a-1;i>0;--i)
{
//找出能整除的数
if(a%i==0)
{
//判断第一个因数是否是质数
b=i;
do
{
b--;
c=i%b;
}
while(c);
if(b==1)
{
//判断第二个因数是不是质数
d=a/i;
b=d;
do
{
b--;
c=d%b;
}
while(c);
if(b==1)
{
cout<<i;
break;
}
else
{
cout<<a;
break;
}
}
}
e=i;
//cout<<e<<'\n';
}
}
else
{
cout<<a;
}
//if(e==1)
//{
//cout<<"无法由两个质数相乘";
//}
//cout<<"sb";
return 0;
}
差不多就是
21 输出 7 因为21= 3*7
24 就输出 24 因为不是质数的乘积
但是问题就是 如果输入的数大了 就反应慢了
输入个 8888888
等了6 7s 才弹出结果
求优化一下下!
using namespace std;
int main()
{
int a,b,c,d,e=0;
cin>>a;
if(a>2)
{
for(int i=a-1;i>0;--i)
{
//找出能整除的数
if(a%i==0)
{
//判断第一个因数是否是质数
b=i;
do
{
b--;
c=i%b;
}
while(c);
if(b==1)
{
//判断第二个因数是不是质数
d=a/i;
b=d;
do
{
b--;
c=d%b;
}
while(c);
if(b==1)
{
cout<<i;
break;
}
else
{
cout<<a;
break;
}
}
}
e=i;
//cout<<e<<'\n';
}
}
else
{
cout<<a;
}
//if(e==1)
//{
//cout<<"无法由两个质数相乘";
//}
//cout<<"sb";
return 0;
}
差不多就是
21 输出 7 因为21= 3*7
24 就输出 24 因为不是质数的乘积
但是问题就是 如果输入的数大了 就反应慢了
输入个 8888888
等了6 7s 才弹出结果
求优化一下下!