附上代码,请大佬优化一下,感激不尽。
#include <stdio.h>
#include <math.h>
int zhishu(int n);
int main()
{
int n;
scanf("%d", &n);
if (n == 1) {
printf("1");
}
for (int i = 1; i <sqrt(n); i++) {
int t = 0;
int r = zhishu(i);
if (n % i == 0&&r==1) {
t = n / i;
int l = zhishu(t);
if (l == 1) {
printf("%d", t);
break;
}
}
}
return 0;
}
int zhishu(int n) {
int ret = 1;
for (int i = 2; i < n; i++) {
if (n % i == 0) {
ret = 0;
break;
}
}
return ret;
}