问题 A:1的个数
1.题目描述
输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。
2.输入
输入一个整数(int类型)。
3.输出
这个数转换成2进制后,输出1的个数。
4.样例输入 Copy
5
5.样例输出 Copy
2
6.代码
#include<stdio.h>
#include <stdlib.h>
#include<math.h>
int main()
{
int n;
while(~scanf("%d",&n)){
int sum=0;
while(n!=0){
if(n%2!=0)
sum++;
n=n/2;
}
printf("%d\n",sum);
}
return 0;
}
问题 B:最小素数对
1.题目描述
任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对。
2.输入
输入一个偶数。
3.输出
输出两个素数。
4.样例输入 Copy
20
5.样例输出 Copy
7
13
6.代码
#include<stdio.h>
#include <stdlib.h>
#include<math.h>
#include<string.h>
sushu(int n){
for(int i=2;i<n;i++){
if(n%i==0)
return 0;
}
return 1;
}
int main()
{
int n;
while(~scanf("%d",&n)){
int min=n;
int x=0;
int y=0;
for(int i=2;i<=n/2;i++){
if(sushu(i)==1){
int j=n-i;
if(sushu(j)==1&&(j-i)<min){
min=j-i;
x=i;
y=j;
}
}
}
printf("%d\n",x);
printf("%d\n",y);
}
return 0;
}
问题 C:又一道简单题
1.题目描述
输入一个四个数字组成的整数 n,你的任务是数一数有多少种方法,恰好修改一个数字,把它 变成一个完全平方数(不能把首位修改成 0)。比如 n=7844,有两种方法:3844=622 和 7744=882。
2.输入
输入第一行为整数 T (1<=T<=1000),即测试数据的组数,以后每行包含一个整数 n (1000<=n<=9999)。
3.输出
对于每组数据,输出恰好修改一个数字,把 n变成完全平方数的方案数
4.样例输入 Copy
2
7844
9121
5.样例输出 Copy
Case 1: 2
Case 2: 0
6.代码
#include<stdio.h>
#include <stdlib.h>
#include<math.h>
int he(int x[]){
return x[3]