|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
若一个自然数可以表示成两个素数乘积的形式,这个自然数就叫做半素数(Quadratic Almost Prime)。
不知道咋写。。求大佬帮助!!!
- #include <stdio.h>
- #include <math.h>
- unsigned isPrime(int num) {
- if (num < 2) return 0;
- else if (num == 2) return 1;
- for (int n = 2; n < sqrt(num) + .5; ++n) {
- if (!(num % n)) return 0;
- }
- return 1;
- }
- unsigned isSemiprime(int num) {
- if (num < 2) return 0;
- for (int n = 2, a, b; n < sqrt(num) + .5; ++n) {
- if (!(num % n)) {
- a = n;
- b = num / n;
- if (isPrime(a) && isPrime(b)) return 1;
- }
- }
- return 0;
- }
- int main(void) {
- for (int n = 0; n <= 20; ++n) {
- isSemiprime(n) ? printf("%d is Semiprime\n", n) : printf("%d\n", n);
- }
- return 0;
- }
复制代码- 0
- 1
- 2
- 3
- 4 is Semiprime
- 5
- 6 is Semiprime
- 7
- 8
- 9 is Semiprime
- 10 is Semiprime
- 11
- 12
- 13
- 14 is Semiprime
- 15 is Semiprime
- 16
- 17
- 18
- 19
- 20
复制代码
|
|