Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * File: main.c
- * Author: Alvaro
- *
- * Created on 20 de abril de 2015, 01:59 PM
- */
- #include <stdio.h>
- #include <stdlib.h>
- #define MAX 16
- /*
- *
- */
- int imprime(int sol[MAX],int n){
- int i;
- for (i = 0; i < n; i++)
- printf("%d ",sol[i]);
- printf("\n");
- }
- int es_primo(int n){
- int i=2;
- while((n%i)!=0){
- i++;
- }
- if ((n / i)==1) return 1;
- else return 0;
- }
- int primeRing(int valores[MAX],int estados[MAX],int sol[MAX],int niv,int nelem){
- int i;
- if(niv==nelem)
- if(es_primo(sol[niv-1]+sol[0])){
- imprime(sol,nelem);
- return 0;
- }
- for (i = 0; i < nelem; i++){
- if(estados[i]==0 && es_primo(valores[i]+sol[niv-1])){
- estados[i]=1;
- sol[niv]=valores[i];
- if (!(primeRing(valores,estados,sol,niv+1,nelem)))
- estados[i]=0;
- }
- }
- return 0;
- }
- int main(int argc, char** argv)
- {
- int n,i;
- int valores[MAX],estados[MAX],sol[MAX];
- printf("Ingrese el n: ");scanf("%d",&n);
- for (i = 0; i < n; i++)
- estados[i]=0;
- for (i = 0; i < n; i++)
- valores[i]=i+1;
- estados[0]=1;
- sol[0]=1;
- primeRing(valores,estados,sol,1,n);
- return (EXIT_SUCCESS);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement