/*
*********************************************
*不使用中間變量,將兩個整數的值交換
* int a b;
* a=a+b;
* b=a-b;
* a=a-b;
*此答案未考慮到溢出的問題
*********************************************
*int 正數的最大值 2^32-1
*補碼: 正數的補碼是起本身,負數的補碼:絕對值的源碼取反+1
*有符號:最高位是符號位 1:負數 0:正數
* a=a^b;
* b=a^b;
* a=a^b;
*/
int main(int argc ,char *argv[])
{
int a,b;
scanf("%d %d",&a,&b);
a=a+b;
b=a-b;
a=a-b;
printf("%d, %d\n",a,b);
}
#include<stdio.h>
#include<math.h>
#define N 100
/*********************************************
*質數/素數:除了1和本身以外不能被別的數所整除
*求1-100以內所有的素數
*********************************************
*/
int main(int argc,int argv[])
{
int i,j;
for(i=3;i<=N;i=i+2)
{
for(j=3;j<=(i/2);j+=2)
{
if((i%j) == 0)
{
break;
}
}
if(j>=i/2)
{
printf(" %d",i);
}
}
printf("\n");
}
/*
************************************************************
* 求100-999之間的所有水仙花數
* 153=1^3+5^3+3^3
* 某個數=個數的立方+十位的立方+百位的立方
* 重點:求一個3位數的個位 十位 百位
************************************************************
*/
//int accum(int n);
int calculate(const int i);
int main(int argc, char argv[])
{
//int uint,decade,hundreds;//uint:個位 decade:十位 hundreds:百位
int count=0,i;
for( i=100;i<=N;i++)
{
int temp=calculate(i);
if(temp==i)
{
printf("%5d",i);
count++;
}
//if(count%5==0)
//printf("\n");
}
printf("\n");
}
/*
*********************************
* 數的累積
*********************************
*/
int accum(int n)
{
return n*n*n;
}
/*
*********************************
* 數的個位 十位 百位
*********************************
*/
int calculate(const int i)
{
int ones,decade,hundreds; //ones:個位 decade:十位 hundreds:百位
ones=i%100%10; //個位
decade=i/10%10; //十位
hundreds=i/100; //百位
int sum=0;
sum=ones*ones*ones+decade*decade*decade+hundreds*hundreds*hundreds;
//return accum(ones)+accum(decade)+accum(hundreds);
return sum;
}
/*
**************************************************
* 求1000以內的所有的完數
* 完數=所有的因子的和(不包括本身)
* 6=1+2+3
**************************************************
*/
int main(int argc,char argv[])
{
int i,j,sum;
for(i=2;i<=1000;i++)
{
sum =0;
for(j=1;j<i/2+1;j++)
{
if(i%j==0)
{
sum=sum+j;
}
}
if(sum==i)
{
printf("%d ",i);
}
}
printf("\n");
}