Jugement des nombres premiers langage C et python

sujet:

  • Pour tout nombre supérieur à 3, déterminez s'il s'agit d'un nombre premier

une analyse:

  • (1) Nombre premier: Sauf 1 et lui-même, il ne peut être divisible par aucun autre nombre
  • (2) En supposant que le nombre est n, il suffit de vérifier s'il est divisible par 2 ~ n / 2 (même s'il suffit de le juger par rapport au nombre radical n).

Résolution de problèmes en langage C

  • La quatrième étape est assez compliquée à écrire et vous devez juger les petits nombres de 3, 4 et 5. Seulement des idées personnelles
  • Et faites attention à la conversion de type (int) n / 2
#include<stdio.h>

// 素数判定

int main()
{
    
    
	// 1.获取n的值
	int n, i;
	printf("请输入n的值:\n");
	scanf("%d", &n);
	// 2. 创建 作为初始除数i=2
	for(i=2;i <= n/2; i++)
	{
    
    
		// 3. 判断 2~ n/2 的是能否整除,能整除就得出 不是素数,结束循环
		if (n%i == 0)
		{
    
    
			printf("%d, 不是素数\n", n);
			break;
		}
	}
	// 4. 当i>= n/2时,表示循环全部结束,输出n是素数(这里 i > n/2 的情况是 n==3,i=1,且 n 不能为4,因为是四,两个printf语句都将输出) 
	if (i >= (int)n/2 && n != 4)
		printf("%d, 是素数\n", n);
	return 0;
}
  • Ajouté: en fait aucune conversion de type
    Insérez la description de l'image ici

résolution de problèmes python

  • La syntaxe else inhérente à l'instruction python for élimine le jugement if à la fin du langage C, qui est un peu plus concis
n = int(input("请输入要判定的数字:"))
for i in range(2, int(n/2) + 1):
    if n%i == 0:
        print("%d, 不是素数"% n)
        break
# 此else 与for对齐
else:
    print("%d, 是素数"% n)

Je suppose que tu aimes

Origine blog.csdn.net/pythonstrat/article/details/112647951
conseillé
Classement