Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 26 additions & 1 deletion PQPrime.c
Original file line number Diff line number Diff line change
@@ -1,2 +1,27 @@
// 求 p 和 q
// 当 p 和 q 都是素数,求 p 和 q
// 当 p 和 q 都是素数,求 p 和 q
#include<stdio.h>
#include<math.h>
#define N 300 //range of p
int Isprime(float x);
int main(){

for(float p=3;p<=N;p++){
for(float q=2;p>q;q++){
int a=pow(p,q);
int b=pow(q,p);
if(Isprime(a+b) /*&& Isprime(q) && Isprime(p)*/)
printf("%g %g\n",p,q);
}
}
}


int Isprime(float x){
int a=(int)x;
for(int i=2;i*i<=a;i++){
if(!(a%i))
return 0;
}
return 1;
}
56 changes: 50 additions & 6 deletions SuperPrime.c
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,54 @@
//求 100~10000 内的所有超级素数,及它们的平均数。
// 2021-10-29

int isPrime(int x);
int splitNum(int x, int num[]);
#include<stdio.h>
int SplitNum(int num[],int x);
int IsPrime(int x);
int Average(int a[],int x);
int main(){
int x=100;
int a[221]={0};
int n=0,i=0;

for(;x<=10000;x++){

int num[5]={0};

if(IsPrime(x)){

SplitNum(num,x);
int sum=num[0]+num[1]+num[2]+num[3]+num[4];
int sum2=num[0]*num[0]+num[1]*num[1]+num[2]*num[2]+num[3]*num[3]+num[4]*num[4];

if(IsPrime(sum) && IsPrime(sum2)){
a[i++]=x;
printf("%d\n",x);
n++;
}
}
}
printf("average:%d",(Average(a,n)/n));
return 0;

}
int SplitNum(int num[],int x){
for(int i=0;x>0;i++,x/=10){
num[i]=x%10;
}
return 0;
}

int main()
{
return 0;
}
int IsPrime(int x){
for(int i=2;i*i<=x;i++){
if(!(x%i))
return 0;
}
return 1;
}
int Average(int a[],int x){
int sum=0,i=0;
for(;x>0;x--){
sum+=a[i++];
}
return sum;
}
32 changes: 31 additions & 1 deletion google.c
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,34 @@
//f(13)是0~13中包含1的有 1,10,11,12,13,所以f(13)=6
//f(1) = 1。
//求另一个f(n)=n的n值
// 2021-11-04
// 2021-11-04
#include<stdio.h>
long f(long number);

int main(){
long i=2;
for(;f(i)!=i;i++){
printf("%ld %ld\n",i,f(i));
}

printf("%ld is the target",i);
return 0;
}
long f(long number){
long a=number;

if(a==1)
return 1;

int b[30]={0},self=0;

for(int i=0;a>0;a/=10,i++){
b[i]=a%10;
if(b[i]==1)
self++;
}
long ret=self+f(number-1);
return ret;


}
32 changes: 29 additions & 3 deletions resolutions.c
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,41 @@
//完成如下程序
// 2021-11-14
#include <stdio.h>
#include <string.h>
#define RESNUM 200
int compare(int x, int y, int const res[][2],int time);
int main()
{

char ress[2048];
int x, y;
char *data=ress;

int x, y,offset,time=0;


scanf("%s", ress);
scanf("%d %d", &x, &y);
int res[RESNUM][2]={0},num=0;

for(int i=0;sscanf(data,"%dx%d,%n",&res[i][0],&res[i][1],&offset)==2;i++){
data+=offset;
time++;
}

num=compare(x,y,res,time);

// 学习一下 sscanf 可以方便处理 ress 字符串

printf("选中的分辨率是%s\n", "???");
printf("选中的分辨率是%dx%d\n", res[num][0],res[num][1]);

return 0;
}
}
int compare(int x,int y, int const res[][2],int time){
int num=0;
for(int i=0;i<RESNUM;i++){
if((x-res[i][0])*(x-res[i][0])+(y-res[i][1])*(y-res[i][1]) <= (x-res[num][0])*(x-res[num][0])+(y-res[num][1])*(y-res[num][1])){
num=i;
}
}
return num;
}