From 4728eb7e51b29db53ac38afdcc6571a80985254d Mon Sep 17 00:00:00 2001 From: 2021Joseph <81508306+2021Joseph@users.noreply.github.com> Date: Tue, 13 Apr 2021 20:13:15 +0800 Subject: [PATCH 1/5] Add files via upload --- SuperPrime.c | 40 ++++++++++++++++++++++++++++++---------- 1 file changed, 30 insertions(+), 10 deletions(-) diff --git a/SuperPrime.c b/SuperPrime.c index c418b363..ca1c53da 100644 --- a/SuperPrime.c +++ b/SuperPrime.c @@ -1,10 +1,30 @@ -//超级素数:它本身,各位数字的和,各位数字的平方和,都是素数。 -//求 100~10000 内的所有超级素数,及它们的平均数。 - -int isPrime(int x); -int splitNum(int x, int num[]); - -int main() -{ - return 0; -} \ No newline at end of file +#include +#include +bool prime(int n) +{ + int m; + if(n<1) + return false; + for(m=2;m*m<=n;m++) + if(n%m==0) + return false; + return true; +} +int main() +{ + int a,b,c,j,k,l; + int i,n,max; + int sum=0,num=0; + for(i=100;i<=999;i++) + { + a=i/100;b=(i-a*100)/10;c=i%10; + j=a+b+c; + k=a*b*c; + l=a*a+b*b+c*c; + if(prime(i)&&prime(j)&&prime(k)&&prime(l)) + {sum+=i;num++;max=i;} + } +printf("%d\n%d\n%d",num, sum,max); +return 0; +} + From af9def061e34dd787041dd4b5144ac23390a44e3 Mon Sep 17 00:00:00 2001 From: 2021Joseph <81508306+2021Joseph@users.noreply.github.com> Date: Tue, 13 Apr 2021 20:16:09 +0800 Subject: [PATCH 2/5] Add files via upload From 4342007932139859a8cf28ae83288bb2f3e72ad2 Mon Sep 17 00:00:00 2001 From: 2021Joseph <81508306+2021Joseph@users.noreply.github.com> Date: Tue, 13 Apr 2021 20:19:38 +0800 Subject: [PATCH 3/5] Add files via upload From d7946261e5559a9e67d07887b156fcebe323cdae Mon Sep 17 00:00:00 2001 From: 2021Joseph <81508306+2021Joseph@users.noreply.github.com> Date: Tue, 20 Apr 2021 21:49:56 +0800 Subject: [PATCH 4/5] Add files via upload From 333df31551ce238c4f56783c5f34e78b76c0b0a3 Mon Sep 17 00:00:00 2001 From: 2021Joseph <81508306+2021Joseph@users.noreply.github.com> Date: Sun, 25 Apr 2021 17:03:44 +0800 Subject: [PATCH 5/5] Add files via upload --- SuperPrime-HW2.cpp | 98 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 SuperPrime-HW2.cpp diff --git a/SuperPrime-HW2.cpp b/SuperPrime-HW2.cpp new file mode 100644 index 00000000..7813da87 --- /dev/null +++ b/SuperPrime-HW2.cpp @@ -0,0 +1,98 @@ +#include +#include +class Nature { +private: + int num; +public: + Nature():num(0) {} + Nature(int n):num(n) {} + Nature(const Nature &nat):num(nat.num){} + ~Nature() {} + + Nature show() { + std::cout << num << std::endl; + } + + bool Prime(int n) { + int m; + if(n<=1) + return false; + for(m=2;m*m<=n;m++) + if(n%m==0) return false; + return true; + } + + bool isSuperPrime() { + int sum, mul, square_sum,b,c,d; + + b = num / 100; + c = (num - b*100) / 10; + d = num % 10; + sum = d + b + c; + mul = d * b * c; + square_sum = d*d + b*b +c*c; + if(Prime(num)&&Prime(sum)&&Prime(mul)&&Prime(square_sum)) + return true; + return false; + } + int getnum() { + return num; + } +}; + +class SuperPrime { +private: + std::vector natures; +public: + SuperPrime(int a, int b) { + for(int i = a; i < b; i++) { + Nature nat(i); + if(nat.isSuperPrime()){ + natures.push_back(nat); + } + } + } + ~SuperPrime() { + } + + Nature max() { + std::vector::iterator it = natures.begin(); + int m = 0; + for(; it != natures.end(); it ++) { + int num = it->getnum(); + m = num>m?num:m; + } + return Nature(m); + } + Nature sum(){ + std::vector::iterator it = natures.begin(); + int sum = 0; + for(; it != natures.end(); it ++) { + int num = it->getnum(); + sum += num; + } + return Nature(sum); + } + Nature number(){ + std::vector::iterator it = natures.begin(); + int number = 0; + for(; it != natures.end(); it ++) { + number++; + } + return Nature(number); + } +}; + +int main() { + SuperPrime sp(100,999); + Nature n = sp.max(); + Nature sum = sp.sum(); + Nature number = sp.number(); + std::cout << "ijΪ" << std::endl; + n.show(); + std::cout << "֮Ϊ" << std::endl; + sum.show(); + std::cout << "Ϊ" << std::endl; + number.show(); + return 0; +}