sobota, 3 września 2016
continue first numbers and tables
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
#define max 500
int sum_table(int *tab, int size)
{
int i,sum;
sum=0;
for(i=0;i<size;i++)
sum+=tab[i];
return sum;
}
bool is_first(int x)
{
int i,sum;
sum=0;
for(i=1;i<x+1;i++)
if(x%i==0)
++sum;
if(sum==2)
return true;
else
return false;
}
void change_table(int *tab1, int *tab2, int size)
{
int *temp;
temp=new int[size];
int i;
for(i=0;i<size;i++)
{
temp[i]=tab1[i];
tab1[i]=tab2[i];
tab2[i]=temp[i];
}
delete temp;
}
int *first_table;
int main(int argc, char **argv)
{
int i,j,k,sum;
srand(time(NULL));
first_table=new int[max];
i=0;j=1;
do
{
if(is_first(j))
{
first_table[i]=j;
++i;
}
++j;
}while(i<max);
int table_testing[max][max],double_first[max][max],f_value[max][max];
int g_value[max][max],h_value[max],i_value[max][max];
for(i=0;i<max;i++)
{
for(j=0;j<max;j++)
{
k=rand()%max;
table_testing[i][j]=first_table[k];
double_first[i][j]=first_table[j];
if(double_first[i][j]>=table_testing[i][j])
f_value[i][j]=double_first[i][j]-table_testing[i][j];
else
f_value[i][j]=table_testing[i][j]-double_first[i][j];
if(is_first(f_value[i][j]))
{
g_value[i][j]=1;
i_value[i][j]=0;
}
else
{
g_value[i][j]=0;
i_value[i][j]=1;
}
}
}
for(i=0;i<max;i++)
{
for(j=0;j<max;j++)
{
h_value[i]=sum_table(g_value[i],max);
h_value[i]+=sum_table(i_value[i],max);
}
}
for(i=0;i<max;i++)
{
for(j=0;j<h_value[i];j++)
{
change_table(double_first[j],table_testing[j],h_value[i]);
}
}
delete first_table;
return 0;
}
Subskrybuj:
Komentarze do posta (Atom)
Brak komentarzy:
Prześlij komentarz