コード例 #1
0
ファイル: 4.c プロジェクト: AnthonyTailer/LAB-I
int rotaciona(int n, int cont){ //pega o 1° digito do número e vai rotacionando ele para a esquerda
   int j,primo=0,dig,dig2,rotacionado=0;

   for(j=0;j<cont;j++){
    switch(cont){
        case 4:                 //para um número com 4 algarismos
            dig = n/1000;
            dig2 = n%1000;
            rotacionado = (dig2*10) + dig;
            n = rotacionado;
            if(primos_circ(n) == 1 && qtdDigitos(n) == 4){ //se o rotacionado for primo e tiver 4 digitos
                    primo++; //contador deverá possuir 4 se o número for primo circular
                }
            break;
        case 5:                 //para um número com 4 algarismos
            dig = n/10000;
            dig2 = n%10000;
            rotacionado = (dig2*10) + dig;
            n = rotacionado;
            if(primos_circ(n) == 1 && qtdDigitos(n) == 5){ //se o rotacionado for primo e tiver 5 digitos
                    primo++; //contador deverá possuir 5 se o número for primo circular
                }
            break;
    }
    if(primo == 4 && cont == 4)// retorna 1 se for primo circular
           return 1;
    if(primo == 5 && cont == 5)
           return 1;
}
}
コード例 #2
0
ファイル: solucao.c プロジェクト: Cleissonf/URI
int qtdDigitos(int N)
{
	if(N < 10)
		return 1;
	else
		return 1 + qtdDigitos(N / 10);
}
コード例 #3
0
ファイル: solucao.c プロジェクト: Cleissonf/URI
int main()
{
	int N, T, matriz[MAX][MAX], i, j;
	
	#ifdef DEBUG
		double tI_ = clock();
	#endif
	
	while(scanf("%d", &N) && N != 0)
	{
		for(i = 0; i < N; i++)
			for(j = 0; j < N; j++)
				matriz[i][j] = (int) pow(2, i + j);
		
		T = qtdDigitos((int) pow(2, i + j - 2));
		
		for(i = 0; i < N; i++)
		{
			printf("%*d", T, matriz[i][0]);
			
			for(j = 1; j < N; j++)
				printf(" %*d", T, matriz[i][j]);
			
			printf("\n");
		}
		
		printf("\n");
	}
	
	#ifdef DEBUG
		printf("Tempo: %.1lf %.1lf\n", clock() - tI_, (clock() - tI_) / CLK_TCK);
	#endif
	
	return 0;
}
コード例 #4
0
ファイル: 4.c プロジェクト: AnthonyTailer/LAB-I
main(){
int n,cont=0,i=1;
printf("\t VERIFICA QUANTOS NÚMEROS SãO PRIMOS CIRCULARES ENTRE 1000 E 20000\n\n");

for(n=1000; n <= 20000;n++){

       if(primos_circ(n) == 1){ // avalia se o número é primo
            cont = qtdDigitos(n);
            if(rotaciona(n,cont) == 1 )//avalia se é primo circular
                printf("\nO %d° número primo circular é %d",i++,n);
        }
  }
}