From f338f4ad182874c72e2e1052499d5557028747bb Mon Sep 17 00:00:00 2001 From: zulyar1224 <80330746+zulyar1224@users.noreply.github.com> Date: Tue, 20 Apr 2021 14:56:21 +0800 Subject: [PATCH 1/3] Update SuperPrime_HW.cpp --- SuperPrime_HW.cpp | 51 ++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 48 insertions(+), 3 deletions(-) diff --git a/SuperPrime_HW.cpp b/SuperPrime_HW.cpp index 0e004b50..c21dc88b 100644 --- a/SuperPrime_HW.cpp +++ b/SuperPrime_HW.cpp @@ -1,5 +1,50 @@ -#include -int main() { +#include +#include +#include +#include +using namespace std; +bool is_prime(int m) { + int i; + if(m<=2) + return false; + else + for(i=2; i<=m-1; i++) + if(m%i==0) return false; + return true; } + bool is_superprime(int number) { + int num1=number/100;int num2=(number-num1*100)/10;int num3=number-num1*100-num2*10; + int number1=num1+num2+num3;int number2=num1*num2*num3;int number3=num1*num1+num2*num2+num3*num3; + if(is_prime(number1)&&is_prime(number2)&&is_prime(number3)) + return true; + else + return false; + } +class superprime{ + private:int num;std::vectorrange; + public: + int num_amount() { + return range.size(); + } + superprime(int a,int b) { + for(int i = a; i < b; i++) { + if(is_superprime(i)) + range.push_back(i); + } + } + int num_sum(){ + int sum = accumulate(range.begin(),range.end(),0); + return sum; + } + int num_big(){ + int big =*max_element(range.begin(),range.end()); + } + }; +int main() +{ + superprime sp(100, 999); + std::cout << "超级素数个数:" << sp.num_amount() << std::endl; + std::cout << "最大的超级素数:" << sp.num_big() << std::endl; + std::cout << "超级素数的和:" << sp.num_sum() << std::endl; return 0; -} +} From 5a239a7c49f843cfc0cc36b1daf7c255ae65d828 Mon Sep 17 00:00:00 2001 From: zulyar1224 <80330746+zulyar1224@users.noreply.github.com> Date: Tue, 20 Apr 2021 15:42:10 +0800 Subject: [PATCH 2/3] Update SuperPrime-HW2.cpp --- SuperPrime-HW2.cpp | 98 ++++++++++++++++++++++++++-------------------- 1 file changed, 55 insertions(+), 43 deletions(-) diff --git a/SuperPrime-HW2.cpp b/SuperPrime-HW2.cpp index 9f16866e..45321fd1 100644 --- a/SuperPrime-HW2.cpp +++ b/SuperPrime-HW2.cpp @@ -1,57 +1,69 @@ -#include +#include #include +#include +#include +using namespace std; class Nature { private: int num; public: Nature():num(0){ - std::cout << "Default Create Nature as " << num << std::endl; } - Nature(int n):num(n) { - std::cout << "Create Nature as " << num << std::endl; + Nature(int n):num(n) { } - Nature(const Nature &nat):num(nat.num){ - std::cout << "Copy Create Nature as " << num << std::endl; + Nature(const Nature &nat):num(nat.num){ } - ~Nature() { - std::cout << "Destroy Nature as " << num << std::endl; + ~Nature() { } }; -class SuperPrime { -private: - std::vector natures; -public: - SuperPrime(int a, int b) { - std::cout << "Create SuperPrime from " << a << " to " << b << std::endl; - for(int i = a; i < b; i++) { - Nature nat(i); - std::cout << "HAHA" << std::endl; - natures.push_back(nat); - std::cout << "DDDDD" << std::endl; - } - } - ~SuperPrime() { - std::cout << "Destroy SuperPrime " << std::endl; - } - - Nature max() { - std::vector::iterate it = natures.begin(); - Nature max(0); - for(; it != natures.end(); it ++) { - if(it->isSuperPrime()) { - if (max.compare(*it)) { - max = *it; +bool is_prime(int m) { + int i; + if(m<=2) + return false; + else + for(i=2; i<=m-1; i++) + if(m%i==0) return false; + return true; } + bool is_superprime(int number) { + int num1=number/100;int num2=(number-num1*100)/10;int num3=number-num1*100-num2*10; + int number1=num1+num2+num3;int number2=num1*num2*num3;int number3=num1*num1+num2*num2+num3*num3; + if(is_prime(number1)&&is_prime(number2)&&is_prime(number3)) + return true; + else + return false; } - } - } - return max; - } -}; -int main() { - SuperPrime sp(10, 13); - Nature n = sp.max(); - std::cout << "��󳬼�������" ; - n.show(); - +class superprime{ + private:int num1,num2,num3;std::vectornatures; + public: + int num_amount() { + return num1=natures.size(); + } + superprime(int a,int b) { + for(int i = a; i < b; i++) { + if(is_superprime(i)) + natures.push_back(i); + } + } + int num_sum(){ + int sum = accumulate(natures.begin(),natures.end(),0); + num2=sum; + } + int num_big(){ + int big =*max_element(natures.begin(),natures.end()); + num3=big; + } + int show(){ + std::cout << "超级素数个数:" << num1 << std::endl; + std::cout << "最大的超级素数:" << num2 << std::endl; + std::cout << "超级素数的和:" << num3 << std::endl; + } + }; +int main() +{ + superprime sp(100, 999); + Nature n1=sp.num_amount(); + Nature n2=sp.num_sum(); + Nature n3=sp.num_big(); + sp.show(); return 0; } From 6ebfb01f5638b0370e7c88b537e46f4c84859362 Mon Sep 17 00:00:00 2001 From: zulyar1224 <80330746+zulyar1224@users.noreply.github.com> Date: Sun, 25 Apr 2021 12:05:05 +0800 Subject: [PATCH 3/3] Update SuperPrime-HW2.cpp --- SuperPrime-HW2.cpp | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/SuperPrime-HW2.cpp b/SuperPrime-HW2.cpp index 45321fd1..a366e43e 100644 --- a/SuperPrime-HW2.cpp +++ b/SuperPrime-HW2.cpp @@ -8,15 +8,24 @@ class Nature { int num; public: Nature():num(0){ + //std::cout << "Default Create Nature as " << num << std::endl; } - Nature(int n):num(n) { + Nature(int n):num(n) { + //std::cout << "Create Nature as " << num << std::endl; } - Nature(const Nature &nat):num(nat.num){ + Nature(const Nature &nat):num(nat.num){ + //std::cout << "Copy Create Nature as " << num << std::endl; } - ~Nature() { + ~Nature() { + //std::cout << "Destroy Nature as " << num << std::endl; } -}; -bool is_prime(int m) { + + friend class superprime; + }; +class superprime{ + private:int num1,num2,num3;std::vectornatures; + public: + bool is_prime(int m) { int i; if(m<=2) return false; @@ -32,10 +41,7 @@ bool is_prime(int m) { else return false; } -class superprime{ - private:int num1,num2,num3;std::vectornatures; - public: - int num_amount() { + Nature num_amount() { return num1=natures.size(); } superprime(int a,int b) { @@ -44,11 +50,11 @@ class superprime{ natures.push_back(i); } } - int num_sum(){ + Nature num_sum(){ int sum = accumulate(natures.begin(),natures.end(),0); num2=sum; } - int num_big(){ + Nature num_big(){ int big =*max_element(natures.begin(),natures.end()); num3=big; } @@ -66,4 +72,5 @@ int main() Nature n3=sp.num_big(); sp.show(); return 0; -} +} +