Verificando validade de CPFs em linguagem GO (Golang).

Programa em linguagem GO produzido pelo ChatGpt.

// -----------------------------------------------------------
// Nome :Verifica_cpf.go
// Objetivo :Verifica validade de cpf
// Autor: :ChatGpt
// Data :10-10-2024
// Instrucoes :
// Para commpilar, use
// go build Verifica_cpf.go
// Para executar, use
// Verifica_cpf.exe
//
// -----------------------------------------------------------

package main

import (
"fmt"
"regexp"
"strconv"
"strings"
)

// Função para validar CPF
func validaCPF(cpf string) bool {
// Remover pontos e traços
re := regexp.MustCompile(`[^\d]`)
cpf = re.ReplaceAllString(cpf, "")

// Verificar se o CPF tem 11 dígitos
if len(cpf) != 11 {
return false
}

// Verificar se todos os dígitos são iguais
if cpf == strings.Repeat(string(cpf[0]), 11) {
return false
}

// Converter os primeiros 9 dígitos para inteiros
numeros := make([]int, 11)
for i := 0; i < 11; i++ {
n, _ := strconv.Atoi(string(cpf[i]))
numeros[i] = n
}

// Calcular o primeiro dígito verificador
soma := 0
for i := 0; i < 9; i++ {
soma += numeros[i] * (10 - i)
}

resto := (soma * 10) % 11
if resto == 10 {
resto = 0
}
if resto != numeros[9] {
return false
}

// Calcular o segundo dígito verificador
soma = 0
for i := 0; i < 10; i++ {
soma += numeros[i] * (11 - i)
}

resto = (soma * 10) % 11
if resto == 10 {
resto = 0
}
if resto != numeros[10] {
return false
}

// CPF válido
return true
}

func main() {
var cpf string
fmt.Println("Digite o CPF para validar:")
fmt.Scan(&cpf)

if validaCPF(cpf) {
fmt.Println("CPF válido!")
} else {
fmt.Println("CPF inválido!")
}
}

Sê o primeiro

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *