English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial básico de C

Controle de fluxo C

Função no C

Array no C

Ponteiro no C

String no C

Estruturas de dados C

Arquivos C

Outros C

Manual de referência do C

Programa C, usando funções definidas pelo usuário para verificar números primos ou números Armstrong

Manual Completo de Programação em C

Neste exemplo, você aprenderá a verificar se um número inteiro é primo ou Armstrong (Armstrongnúmero), ou ambos.

Para entender este exemplo, você deve entender o seguinteProgramação CTema:

Neste programa, crie duas funções definidas pelo usuário checkPrimeNumber() e checkArmstrongNumber().

se o número digitado pelo usuário for um número primo, a função checkPrimeNumber() retornará1。Da mesma forma, se o número digitado pelo usuário for um número Armstrong, a função checkArmstrongNumber() também retornará1。

acesse essas páginas para verificar se há números

Exemplo: verificar Prime e Armstrong

#include <math.h>
#include <stdio.h>
int checkPrimeNumber(int n);
int checkArmstrongNumber(int n);
int main() {
   int n, flag;
   printf("Digite um número inteiro positivo: ");
   scanf("%d", &n);
   //verificar se é um número primo
   flag = checkPrimeNumber(n);
   if (flag == 1)
      printf("%d é um número primo.\n", n);
   else
      printf("%d não é um número primo.\n", n);
   //verificar se é um número Armstrong
   flag = checkArmstrongNumber(n);
   if (flag == 1)
      printf("%d é um número Armstrong.", n);
   else
      printf("%d não é um número Armstrong.", n);
   return 0;
}
// função para verificar se é um número primo
int checkPrimeNumber(int n) {
   int i, flag = 1, squareRoot;
   //calcular a raiz quadrada
   squareRoot = sqrt(n);
   for (i = 2; i <= squareRoot; ++i) {
      //condição não-prima
      if (n % i == 0) {
         flag = 0;
         break;
      }
   }
   return flag;
}
// função para verificar se é um número Armstrong
int checkArmstrongNumber(int num) {
   int originalNum, remainder, n = 0, flag;
   double result = 0.0;
   // Armazenar o número de dígitos de num em n
   for (originalNum = num; originalNum != 0; ++n) {
      originalNum /= 10;
   }
   for (originalNum = num; originalNum != 0; originalNum /= 10) {
      resto = originalNum % 10;
      // A soma dos potências de cada número armazenado no resultado
      result +pow(remainder, n);
   }
   //Condição do número de Armstrong
   if (round(result) == num)
      flag = 1;
   else
      flag = 0;
   return flag;
}

Resultado de Saída

Insira um número inteiro positivo: 407
407 Não é um número primo.
407 É um número de Armstrong.

Manual Completo de Programação em C