写一个判素数的函数,在主函数输人一个整数,输出是否为素数的信息。
#include <stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> #define N 5 int prime(int a); int main(void) { int a; puts("请输入一个正数"); scanf("%d", &a); if (prime(a)) { printf("%d是素数\n", a); } else { printf("%d不是素数\n",a); } printf("\n"); return 0;
}
int prime(int a) { int flag = 1; for (int i = 2; i * i <= a; i++) { if (a % i == 0) { flag = 0; break; } } return flag; }
题目解析:
素数是一个大于1...
用户登录可进行刷题及查看答案
素数是一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做素数
该题可以使用概念直接判断法求解,不过不需要判断所有的数据,只需要判断数据的一半即可,因为偶数不可能为素数(除了2),所以只需判断该数的一半即可的到答案
#include<stdio.h> #include<stdbool.h> bool IsPrime(int value) { for(int i=2; i<value/2; ++i) { if(value % i == 0) //说明除了1和本身之外,还能被其他数整除 return false; } return true; } int main() { int value; bool flag; printf("请输入 value :>"); scanf("%d", &value); flag = IsPrime(value); if(flag) printf("%d 是素数.\n", value); else printf("%d 不是素数.\n", value); return 0; }
登录后提交答案