【十二题解】 | #字符串分隔#

质数因子

http://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607

其实只要循环之后每次判断一下是不是质数就可以过关了,这个测试用例大多是分散的比较开的式子

#include <stdio.h>

#include<math.h>

int isprime(int num);

int main() {

int number;
scanf("%d", &number);
if(isprime(number) == 1){
   printf("%d", number);
   return 0;
   }
for (int i=2; i<=number/2; i++) {
    while (number%i == 0) {
        printf("%d ", i);
        number /= i;
        if(isprime(number) == 1){
            printf("%d", number);
            return 0;
        }
    }
}
return 0;

} int isprime(int num){

    if (num <= 3) {
    return num > 1;
}
if (num % 6 != 1 && num % 6 != 5) {
    return 0;
}
int sqr = (int)sqrt(num);
for (int i = 5; i <= sqr; i += 6) {
    if (num % i == 0 || num % (i + 2) == 0) {
        return 0;
    }
}
return 1;

}

全部评论

相关推荐

孤寡孤寡的牛牛很热情:为什么我2本9硕投了很多,都是简历或者挂,难道那个恶心人的测评真的得认真做吗
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务