首页 > 试题广场 >

与7无关的数

[编程题]与7无关的数
  • 热度指数:47481 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
一个正整数,如果它能被7整除,或者它的十进制表示法中某个位数上的数字为7, 则称其为与7相关的数.现求所有小于等于n(n<100)的与7无关的正整数的平方和。

输入描述:
案例可能有多组。对于每个测试案例输入为一行,正整数n,(n<100)


输出描述:
对于每个测试案例输出一行,输出小于等于n的与7无关的正整数的平方和。
示例1

输入

21

输出

2336
#include<stdio.h>
int test(int x){    //找与7无关的数
    if(x%7==0){ //若x能被7整除,则x是与7相关的数,返回1
        return 1;
    }
    while(x>0){ //若x不能被7整除,则进入while
        if(x%10==7){    //取x个位数,若为7,则x与7有关,返回1
            return 1;
        }
        x=x/10; //将现在的x个位数截断,再次进入while判断是否与7有关
    }
    return -1;
}

int main() {
    int sum = 0;
    int n;
    scanf("%d", &n);    //输入n
    for (int i = 0; i <= n; i++) {
        if(test(i)==-1){    //若test函数之后返回结果为-1,说明该数和7无关
            sum=sum+i*i;
        }
    }
    printf("%d\n", sum);

    return 0;
}
发表于 2026-03-06 08:53:09 回复(0)
去除可以被7整除的数,个位和十位含数字7的数,求其余数的平方和

#include <stdio.h>
using namespace std;

int main() {
    int n;
    long sum;
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        if(i%7!=0&&i%10!=7&&i/10!=7){
            sum+=i*i;
        }
    }
    printf("%ld",sum);
}
发表于 2026-02-11 10:23:41 回复(0)
#include <stdio.h>

int main() {
    int n;
    while (scanf("%d", &n) != EOF) {
        int sum=0;
        for (int i=0; i<=n; i++) {
       
        if(!(i%7==0||i%10==7||i/10==7)){
            sum=sum+i*i;
        }
    }
          printf("%d\n",sum);
}
    return 0;
}
发表于 2026-01-06 23:13:40 回复(0)
#include<stdio.h>
#include<stdbool.h>
#include<stdlib.h>
bool Judge(int a){  //该数某位上含有7
	int temp[4];
	int i=0;
	while(a!=0){
		temp[i]=a%10;
		i++;
		a/=10;
	}
	for(int j=0;j<i;j++){
		if(temp[j]==7)
			return true;
	}
	return false;
}

int main(){
	int n;
	while(scanf("%d",&n)!=EOF){
		int sum=0;
		for(int i=1;i<=n;i++){
			if(i%7!=0 && !Judge(i))
				sum+=i*i;
		}
		printf("%d",sum);
		printf("\n");
	}
}

发表于 2022-01-09 13:39:17 回复(0)