JellyFishMo 发表于 2022-10-31 20:57:23

楔形数

楔形数(wedge number)是指可以表示成三个不同质数的积的正整数。如: 30=2×3×5,故30是楔形数。
请你写一个函数,判断给定的一个正整数是否是楔形数。若是,函数返回1,否则返回0。
裁判测试程序样例:
#include <stdio.h>

int isWnumber (const int num);

int main(){
    int num;
    scanf("%d", &num);
    if(isWnumber(num))
      printf("Yes\n");
    else
      printf("No\n");
    return 0;
}
/* 你提交的答案将被嵌在这里 */

jackz007 发表于 2022-10-31 21:46:37

本帖最后由 jackz007 于 2022-10-31 21:54 编辑

int isWnumber (const int num)
{
      int c , i , k                           ;
      for(c = 0 , i = 2 , k = num ; i <= k / i ; i ++) {
                if(! (k % i)) {
                        k /= i                  ;
                        if(k % i) {
                              c ++            ;
                              if(c > 2) break ;
                        } else {
                              c = 0         ;
                              break         ;
                        }
                }
      }
      return (c == 2) ? 1 : 0               ;
}
页: [1]
查看完整版本: 楔形数