#include<stdio.h>
int main()
{
int N,i=0,sum=0;
scanf("%d",&N);
while(N!=0)
{
sum+=N%10;
i++;
N=N/10;
}
printf("%d %d",i,sum);
return 0;
}//7-5 最大公约数和最小公倍数
#include<stdio.h>//7-6 求整数的位数及各位数字之和
int main()
{
int N,i=0,sum=0;
scanf("%d",&N);
while(N!=0)
{
sum+=N%10;
i++;
N=N/10;
}
printf("%d %d",i,sum);
return 0;
}
//7-7 兔子繁衍问题
#include <stdio.h>
int main()
{
int tuzi,n,a=1,b=1;
int month=2;
scanf("%d",&n);
if(n==1)
{
month=1;
}
else
{
for(tuzi=1; tuzi<n; )
{
tuzi=a+b;
a=b;
b=tuzi;
month++;
}
}
printf("%d",month);
}
//7-8 统计素数并求和
int main()
{
int m,n;
int i;
int cnt=0;
int sum=0;
scanf("%d%d",&m,&n);
if(m==1)
m=2;
for(i=m;i<=n;i++){
int isPrime=1;
int k;
for(k=2;k<i-1;k++){
if(i%k==0){
isPrime=0;
break;
}
}
if(isPrime){
cnt++;
sum+=i;
}
}
printf("%d %d\n",cnt,sum);
return 0;
}
//7-9 换硬币
#include <stdio.h>
int main () {
int x, count = 0;
scanf("%d", &x);
for ( int k = x / 5; k > 0; k-- )
for ( int i = x / 2; i > 0; i-- )
for ( int j = x; j > 0; j-- )
if ( k * 5 + i * 2 + j == x)
{
printf("fen5:%d, fen2:%d, fen1:%d, total:%d\n", k, i, j, k + j + i);
count++;
}
printf("count = %d",count);
return 0;
}
//7-10 输出三角形字符阵列
#include<stdio.h>
int main()
{
int a,c,x,i,n;
char m='A';
scanf("%d",&a);
x=a;
for(i=1;i<=a;i++)
{
for(c=1;c<=x;c++)
{
printf("%c ",m);
m++;
}
x=x-1;
printf("\n");
}
}
//7-5 输出整数各位数字
#include<stdio.h>
int main() {
int n, t;
int m = 1;
scanf("%d", &n);
t = n;
while (t / 10 != 0) {
m *= 10;
t /= 10;
}
while (m != 0) {
printf("%d ", n / m);
n %= m;
m /= 10;
}
return 0;
}
//7-9 验证“哥德巴赫猜想
#include<stdio.h>
int isPrime(int x) {
int isPrime = 1;
if (x == 1 || x % 2 == 0 && x != 2) isPrime = 0;
else {
for (int i = 3; i <= sqrt(x); i += 2) {
if (x % i == 0) {
isPrime = 0;
break;
}
}
}
return isPrime;
}
int main()
{
int n;
scanf("%d", &n);
for (int i = 2; i <= n / 2; i++) {
if (isPrime(i) && isPrime(n - i)) {
printf("%d = %d + %d\n", n, i, n - i);
break;
}
}
return 0;
}
//7-10 找完数
#include<stdio.h>
int main(){
int n,m,i,j,sum,num=0;
scanf("%d %d",&m,&n);
for(i=m;i<=n;i++){
if(i==1) continue; //1不是完数
sum=1;
for(j=2;j<i;j++) //因子数之和
if(i%j==0) sum+=j;
if(sum==i){ //之和相等,既是完数
printf("%d = 1",i); //每一项都有1
for(j=2;j<i;j++)
if(i%j==0)
printf(" + %d",j); //之后再加上后面的因子
printf("\n");
num++;
}
}
if(num==0) printf("None\n"); //num是用来统计出现的完数个数
return 0;
}
//6-3 符号函数
//6-10 统计某数每一位数字的偶数和
int Count_Digit ( const int N )
{
int oddsum,a,b;
oddsum = 0;
a = N;
if(a<0)
{
a = -a;
}
while(a>0)
{
b = a%10;
if(b%2==0)
{
oddsum+=b;
}
a /= 10;
}
return oddsum;
}
//7-3 求满足条件的斐波那契数
#include<stdio.h>
int fib(int n);
int main(){
int i,n;
scanf("%d",&n);
for(i=1;;i++){
if(fib(i)>n){
printf("%d",fib(i));
break;
}
}
return 0;
}
int fib(int n){
if(n<=2){
return 1;
}else{
return fib(n-1)+fib(n-2);
}
}
//7-4 统计素数并求和
#include <stdio.h>
#include <math.h>
int main()
{
int i, j, m, n, sum = 0, count = 0;
scanf("%d %d", &m, &n);
for(i = m; i <= n ; i++)
{
for(j = 2; j <= i; j++)
{
if(i % j == 0)
{
break;
}
}
if(i == j)
{
sum += j;
count++;
}
}
printf("%d %d", count, sum);
return 0;
}
//7-5 判断素数
#include <stdio.h>
#include <math.h>
int main()
{
int i, j, n, a;
scanf("%d", &n);
for(i = 0; i < n; i++)
{
scanf("%d", &a);
if(a == 1)
printf("No\n");
else
{
for(j = 2; j <= sqrt(a); j++)
{
if(a % j == 0)
{
break;
}
}
if(j > sqrt(a))
printf("Yes\n");
else
printf("No\n");
}
}
return 0;
}