美文网首页程序员
枚举算法作业(六)

枚举算法作业(六)

作者: 续袁 | 来源:发表于2018-09-25 19:46 被阅读63次

时间限制 1000 ms
内存限制 64 MB
题目描述
如果一个质数能被表示为三个不同的质数的和的形式,那么我们称它为立方质数。现在给你一个数n,判断它是不是立方质数。

输入数据
正整数n,n<=1000

输出数据
Yes或者No

样例输入
19
样例输出
Yes

#include<stdio.h>
#include<math.h>
#include <iostream>
using namespace std;
int  isPrime(int number);
int main(){
    int m; // 输入的整数
    //printf("输入一个小于等于1000的正整数:");
    //scanf_s("%d", &m);
    cin >> m;
    if (m > 1000 || m < 1){
        //cout << "输入数据不合法!" << endl;
        printf("输入数据不合法!");
        return 0;
    }
    else
    {
        int flag = isPrime(m);
        int t_flag = 0;
        if (flag == 1){
            int times = m % 3;
            int k = m / 3;
            //cout << "余数:"<<times <<"商:"<<k<<endl ;
                for (int i = 2; i <m-4; i = i + 1){
                    for (int j = 2; j < m-i-1; j = j + 1 ){

                        if ((isPrime(i) == 1 && isPrime(j) == 1 && isPrime(m - i - j) == 1 && (i != j) && (i != (m - i - j)) && ((m - i - j) != j))
                            )
                        {
                            //cout << "Yes" << endl;
                            printf("Yes");
                            t_flag = 1;
                            return 1;
                            //break;
                        }
                    }
                }

                if (t_flag == 0){
                    //cout << "No" << endl;
                    printf("No");
                }
        
            
            //判断输入是否为素数
        }
        else if (flag == 0)
        {
            //cout << "No" << endl;
            printf("No");
        }


        //判断数据范围合法
    }
    return 1 ;

}

int  isPrime(int number){

    int flag=1;
    int i;            //  循环次数
    int k;  //   m 的平方根

    // 求平方根,注意sqrt()的参数为 double 类型,这里要强制转换m的类型
    k = (int)sqrt((double)number);
    for (i = 2; i <= k; i++){
        if (number%i == 0){
            flag = 0;
            break;
        }

    }
    return flag;

}

相关文章

  • 枚举算法作业(六)

    时间限制 1000 ms内存限制 64 MB题目描述如果一个质数能被表示为三个不同的质数的和的形式,那么我们称它为...

  • 枚举算法作业(四)

    时间限制 1000 ms内存限制 64 MB题目描述我们有n根的木棍。现在从这些木棍中切割出来m条长度相同的木棍,...

  • 枚举算法作业(一)

    时间限制 1000 ms内存限制 64 MB题目描述有一条河,河中间有一些石头,已知石头的数量和相邻两块石头之间的...

  • 枚举算法作业(三)

    时间限制 1000 ms内存限制 64 MB题目描述给你一个长度为n的数组和一个正整数k,问从数组中任选两个数使其...

  • 枚举算法作业(五)

    时间限制 1000 ms内存限制 64 MB题目描述李老师的lucky number 是3,5和7,他爱屋及乌,还...

  • 枚举算法作业(二)

    时间限制 1000 ms内存限制 64 MB题目描述李老师正准备暑假旅行,他有一个容量为L的行李箱和n个物品(n不...

  • 算法学习3_枚举

    枚举算法又称穷举算法枚举算法的核心思想 : 有序的尝试每一种可能 题一、 3 * 6528 = 3 * 8256 ...

  • 算法 | 枚举算法

    【算法思想】 利用计算机运算速度快的特点,对问题的所有可能答案一一列举,并逐一检验,符合条件的保留,不符合的丢弃。...

  • 2018-08-02

    php实现组合枚举算法 源码

  • 枚举算法

    枚举法:又称穷举法,是指从可能的集合中一一列举各个元素,用题目给定的约束条件判定哪些是无用的,哪些是有用的。能使命...

网友评论

    本文标题:枚举算法作业(六)

    本文链接:https://www.haomeiwen.com/subject/djfxoftx.html