C语言实现:输入一个数字判断其是否为素数

#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> int judeg(int x) //判断函数 { if (x > 0) //过滤非零整数,且如果输入字符给scanf中的input,那么input的值会默认变成0

{ int z = 0; int sum = 0; //定义基本的变量元素 for (z = 1; z <= x; z++) { int d = 0; //定义一个存放如何判断是否为素数的存储变量 d = x % z; if (d == 0) { sum++; //如果无余数代表可以整除,那么sum变量++

} else if (d != 0) //反之则sum变量不改变 { ; } } if (sum >= 3) //循环结束以后,一个素数应该只能完成两次整除,一次是他本身,另一次是1,如果超过了2次那么代表这个数一定不是素数。其实也可以在进行进一步的精简,把z <= x改变成z < x,并且把z = 1改变成z = 2,然后在循环里进行判断sum++,一旦++了那么直接用break跳出循环并return 0。 return 0; //对应main()函数里的switch语句的case 0来判断 else return 1; //对应main()函数里的switch语句的case 1来判断 } else return 3; //对应main()函数里的switch语句的default来判断

} int main() { int t = 0; int input = 0; int i = 0; printf("input:>"); scanf("%d", &input); //获取用户输入的数字 switch (judeg(input)) //利用函数体judge()来获取switch()的判断值 { case 1: printf("是素数"); break; case 0: printf("不是素数"); break; default : printf("输入错误"); break; } return 0 ; }

经验分享 程序员 微信小程序 职场和发展