900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 用c语言判断一个数是否是素数(质数)

用c语言判断一个数是否是素数(质数)

时间:2024-06-10 12:19:01

相关推荐

用c语言判断一个数是否是素数(质数)

质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。

换句话来说就是除只有能够被1和它本身整除的数才是质数。(1既不是质数也不是合数)

分析:如何判断一个数是否能被除了1和它本身之外的数整除,判断标准就是从1到这个数之间如果能找到能够被整除的数,那它肯定不是质数。如果找不到的话那它一定是质数。

直接上代码。

#include <stdio.h>#include <math.h>int val(int a){int i;for (i=2; i<=a-1; i++) {if (a%i==0) {break;}}if (i==a) {printf("%d是素数\n",a);}else{printf("%d不是素数\n",a);}return 0;}int main(void){int v;printf("plz input the number:\n");scanf("%d",&v);if (1==v) {printf("%d既不是素数也不是合数.\n",v);} else {val(v);}}

这里使用到了用户自定义函数,这个自定义函数的精彩之处就是for循环当中的if条件句,把用户输入数字n从2一直除到n-1,如果存在整除的情况,用break语句跳出循环。之后判断这里的除数与被除数是否相等(这里是整除的情况,说明是质数,那数字n与i一定不相等),不相等的话那就不是质数。

如果用户输入的数字n是质数,那么从2到n-1之间都不会有数字能够被整除,循环变量一直循环到i=n时,循环条件i<=n-1,不再成立,此时循环变量与用户输入数字n相等,即输出用户输入的n为质数。

算法设计的非常巧妙。

若要将用户自定义函数设置成返回值为bool值类型的话,需要添加新的头文件<stdbool.h>. 代码如下:

#include <stdio.h>#include <math.h>#include <stdbool.h>bool IsVal(int a){int i;for (i=2; i<=a-1; i++) {if (a%i==0) {break;}}if (i==a) {return true;}else{return false;}}int main(void){int v;printf("plz input the number:\n");scanf("%d",&v);if (1==v) {printf("%d既不是素数也不是合数\n",v);} else if(IsVal(v)){printf("%d是素数\n",v);} else {printf("%d不是素数\n",v);}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。