#include <stdio.h>
#include <math.h>
void clearYinziArr(int arr[]);
int aItem(int key, int i);
int main() {
//求PI
//pi=4*(1-1/3+1/5-1/7+1/9-1/11....)
//本次求PI 直到某一项绝对值小于 10^(-6)
int sign = 1;//控制正 负
double fenmu = 1;
double sum = 0;
while (fabs(1 / fenmu) > 1e-6) { //fabs是math.h中的函数
sum += (1 / fenmu * sign);
sign = -sign;
fenmu += 2;
}
printf("%lf", 4 * sum);
//求完数且输出所有因子
//它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身。
//输出所有因子 这里用的方式是将每次求出的因子都放在数组中
int i = 1;
int yinzi = 1;
int yinziArr[50];
for (; i < 1000; i++) {
int yinziSum = 0;
clearYinziArr(yinziArr);//首先将yinziArr数组各个元素置0
int yinziArrIndex = 0;//yinziArr数组的下标
for (yinzi = 1; yinzi < i; yinzi++) {
if (i % yinzi == 0) {
yinziSum += yinzi;
yinziArr[yinziArrIndex++] = yinzi;//是因子 就把它放入因子数组
}
}
if (yinziSum == i) {
int j = 0;
for (j = 0; j < yinziArrIndex; j++) {//输出因子
printf("%d,", yinziArr[j]);
}
printf(" ,%d\n", i);
}
}
//寻找2--1000的完全平方数
i=2;
for(i=2;i<1000;i++){
int j=0;
for(j=1;j<i;j++){
if(j*j==i){
printf("完全%d,%d",i,j);
}
if(j*j>i){
break;
}
}
}
//球水仙花数
//153=1^3+5^3+3^3
i = 0;
for (i = 100; i < 1000; i++) {
int ge = i % 10;
int shi = (i / 10) % 10;
int bai = i / 100;
//pow(float,float)返回float
if (i == (pow(ge, 3) + pow(shi, 3) + pow(bai, 3))) {
printf("%d,", i);
}
//虽然是不同类型数值 但是值相同 ==是ok的
// int i=1;
//float f=1.0f;
//printf("%d,",i==f);//1
}
//求2+22+222+2222+22222....
sum = 0;
i = 0;
for (i = 0; i < 7; i++) {
sum += aItem(2, i);
}
printf("\n%d\n", sum);
//求素数
//如果一个数能被2~√m 中任意一个数字整除 那么它不是素数
i = 0;
for (i = 2; i < 200; i++) {
int flag = 1;
int k = sqrt(i);
int j = 0;
for (j = 2; j <= k; j++) {//注意 分母不能从0开始
if (i % j == 0) {
flag = 0;
}
}
if (flag) {
printf(",%d,", i);
}
}
//求阶乘的和
//1!+2!+3!+4!...
//如果是使用递归 那么需要2个函数,一个计算每一项的值 一个计算和
//所以还是用循环好了
sum=0;
int item=1;
for(i=1;i<5;i++){//求前8项的和
int j=1;
for(j=1;j<=i;j++){
item*=j;
}
sum+=item;
}
printf("sum:%d",sum);
return 1;
}
void clearYinziArr(int arr[]) {
int i = 0;
for (; i < 50; i++) {
arr[i] = 0;
}
}
int aItem(int key, int i) {
int s = key;
int j = 1;
while (j <= i) {
s = s * 10 + key;
j++;
}
printf("-%d,", s);
return s;
}