1.求100-300之间的全部素数(质数)
素数:除了1和这个数本身之外,没有第二个数可以被这个数整除。
n:n%2==0 n%3==0...n%(n-1)==0
#include<stdio.h>
int main(){
for(int i=100;i<=300;i++){
int flag=0;//素数
for(int j=2;j<=i-1;j++){
if(i%j==0){
flag=1;//不是素数
break;
}
}
if(flag==0)printf("%d\n",i);
}
return 0;
}
2.1!+2!+3!+...+50!=?
5!=1*2*3*4*5
#include<stdio.h>
int main(){
double sum=0;
double t=1;
for(int i=1;i<=50;i++){
t=t*i;//t=1 t=1*2 t=1*2*3 t=1*2*3*4
sum=sum+t;
}
printf("%e",sum);
return 0;
}
另一种解法:
#include<stdio.h>
int main(){
double sum=0;
for(int i=1;i<=50;i++){
//1.求i的阶乘
double t=1;
for(int j=1;j<=i;j++){
t=t*j;
}
sum=sum+t;
}
printf("%e",sum);
return 0;
}
3.一个数如果正好等于这个数的因子之和,称这个数为“完数”。求2-1000之间所有的完数。
n:n%1==0 n%==0.....n%(n-1)==0
#include<stdio.h>
int main(){
for(int i=2;i<=1000;i++){
int sum=0;
for(int j=1;j<=(i-1);j++){
if(i%j==0)sum=sum+j;
}
if(i==sum)printf("%d\n",i);
}
return 0;
}