# incluir & ltmath.h & gt
int isprime(int n){
int I;
for(I = 2;i<n;i++)
Si (n%i==0)
Devuelve 0;
Devuelve 1;
}
int prime_m(int n, int x[], long y[]){
int m, j=0, s[ 20] ={0}, a;
龙M, rei
for(m = 2; m & lt= n; m++){
M =( long)pow(2,m)-1;
While(isprime(M)){ // si, aquí no se debe usar While.
rei = M;
a = 0;
Blanco (rei)
{ s[a]= rei % 10;
rei = rei/10;
a++;
}
printf("%d\n ",M);
//A- debe ejecutarse antes de la operación s[a], porque el s[a] correspondiente no tiene ningún valor asignado después del último a++.
if(s[a]%2==1){
for(;a = 0;A-){//El juicio de condición intermedia de la declaración for no debe ser a =0 (esta es una declaración de asignación), pero A >;=0
if(s[a]==1){
x[j]= m;
p>y[j]= M;
j++;
//Se ha encontrado aquí, debería estar roto.
}
}
}
}
}
Devuelve j;
}
void main(){
int k, n, x[100], I
龙y[100; ];
ARCHIVO * fp
fp=fopen("myf2.out ", " w ");
Printf("Por favor ingrese n:\ n ");
scanf("%d ", & ampn);
k=prime_m(n, x, y);
printf("% d\n ", k);
for(I = 1; I & lt= k; I++) //x[i] e y[i] deben generarse en pares, así que aquí hay menos Se agrega un "{".
//Además, el rango de valores de I debe ser [0, k-1], es decir, para (I = 0; I<k;i++)
fprintf(fp , " %d\n ", x[I]); //Veo el formato solicitado. ¿Debería usarse "\t" aquí en lugar de "\n"?
fprintf(fp, " %d\n ", y[I]);
//Agrega "}" aquí.
fprintf(fp, " \nMi número de examen es: 00123 "
fclose(FP);