话不多说, 上代码!
# include <stdio.h>
# include <stdlib.h>
int max(int * , int );
int isprime(int );
int n, i, j;
int main()
{
scanf("%d", &n);
int * p = (int *)malloc(n*sizeof(int));
for (i=2; i<n; i++) {
if (n%i == 0 && isprime(i)) {//将及 可以把n整除的 , 又是素数的i存入到p[]里面
p[j] = i;
++j;
}
}
printf("%d\n", max(p, j));//输出最大的p[]!
return 0;
}
int max (int * a, int len)
{
int i, j, t;
for (i=0; i<len; ++i) {
for (j=i; j<len; ++j) {
if (a[i]<a[j]) {
break;
}
}
if (i == len-1)
return a[i];
}
}
void sort (int * a, int len)
{
int i, j, t;
for (i=0; i<len; ++i) {
for (j=i; j<len; ++j) {
if (a[i]<a[j]) {
t = a[i];
a[i] = a[j];
a[j] = t;
}
}
}
}
int isprime(int n)
{
int i;
for (i=2; i<n; ++i) {
if(n%i == 0)
break;
}
if (2 == n || i == n)
return 1;
else
return 0;
}