/*** | |
Md. Nazmul Hasan | |
Shahjalal University of Science & Technology,Sylhet. | |
hasan08sust@gmail.com | |
***/ | |
#include<iostream> | |
#include<cstdio> | |
#include<stack> | |
#include<queue> | |
#include<map> | |
#include<vector> | |
#include<algorithm> | |
#include<cstring> | |
#include<sstream> | |
#include<cmath> | |
#include <iomanip> | |
using namespace std ; | |
typedef long long ll ; | |
typedef int in ; | |
typedef unsigned long long ull ; | |
const double pi = 2*acos(0) ; | |
#define maxi 40000 | |
#define pf printf | |
#define sc scanf | |
#define pb push_back | |
#define MEM(x,y) (memset((x),(y),sizeof(x))) | |
#define MIN(x,y) ((x) < (y) ? (x) : (y)) | |
#define MAX(x,y) ((x) > (y) ? (x) : (y)) | |
#define load(array,size) for(int i=0 ; i<size ; i++) cin>>array[i] ; | |
#define new_line pf("\n") | |
#define clear_data(array) memset(array,0,sizeof(array)) | |
#define highest_int 2147483647 | |
int data[1000001]; | |
int gcd(int a, int b) | |
{ | |
if (a == 0 || b == 0) | |
return 0; | |
if (a == b) | |
return a; | |
if (a > b) | |
return gcd(a-b, b); | |
return gcd(a, b-a); | |
} | |
void finding_value(int n) | |
{ | |
int tri=0 , total=0,up,y,x,z; | |
memset(data,0,sizeof(data)); | |
int m = sqrt(n); | |
if(m*m<n) | |
m++; | |
for(int r=1 ; r<=m ; r++) | |
{ | |
up = min((n-r*r),r-1); | |
for(int s=1 ; s<=up ; s++) | |
{ | |
x = r*r-s*s; | |
y = 2*r*s; | |
z = r*r + s*s; | |
if(x*x + y*y == z*z && z<=n) | |
{ | |
if(gcd(x,y)==1) | |
{ | |
tri++; | |
for(int k=1 ; k*z<=n ; k++) | |
{ | |
data[k*x] =1; | |
data[k*y] =1; | |
data[k*z] =1; | |
} | |
} | |
} | |
} | |
} | |
for(int k=1 ; k<=n ; k++) | |
{ | |
if(data[k]==0) | |
total++; | |
data[k]=0; | |
} | |
pf("%d %d\n",tri,total); | |
} | |
int main() | |
{ | |
int n; | |
while(sc("%d",&n)==1) | |
{ | |
finding_value(n); | |
} | |
return 0; | |
} |
19 December 2017
UVA 106 Fermat vs. Pythagoras
Subscribe to:
Post Comments (Atom)
-
/*** Md. Nazmul Hasan Shahjalal University of Science & Technology,Sylhet. hasan08sust@gmail.com ***/ #include<iostream> #i...
-
n = 1 while n: str = input () # print('Case no# %d :'%n) if str == ' * ' : break if str == ' Hajj ...
-
/*** Md. Namzul Hasan Shahjalal University of Science & technology,sylhet. hasan08sust@gmail.com ***/ #include<bits/stdc++.h...
No comments:
Post a Comment