编写一个程序来计算m到n之间的素数(含边界)。然后计算总和=第一个素数-第二个素数+第三个素数第四个素数+第五个素数…这些素数按降序排列。
格式:
输入格式:输入为整型,空格分隔
输出格式:输出为整型
样例一:
输入: 500 800
输出: 130
答案:
'''
@Author :S1Lu
@Date :2022/11/9 15:33
'''
def handlerNum(num):
if num > 1:
for i in range(2, num//2+1):
if (num % i) == 0:
return False
break
else:
return True
else:
return False
m,n = map(int,input().split())
sum = 0
f = 1
a = []
for i in range(m,n+1):
if handlerNum(i):
a.append(i)
a.sort(reverse = True)
for i in a:
f +=1
sum += i*((-1)**f)
print(sum)
自然数n的立方等于包含n个连续奇数的序列之和。比如2的立方等于2个连续奇数3、5之和,3的立方等于3个连续奇数7、9、11之和。输入n,按下面格式输出。不考虑0,负数或者其他特殊情况。
格式:
输入格式:输入为整型
输出格式:输出为整型
样例一:
输入: 5
输出: 5*5*5=21+23+25+27+29=125
答案:
'''
@Author :S1Lu
@Date :2022/11/13 15:10
'''
n = eval(input())
for i in range(1,n**3,2):
s = 0
for j in range(1,n+1):
s += i
i = i+2
if s == n**3:
print("{}*{}*{}=".format(n,n,n,),end='')
for x in range(1,n+1):
if x == n:
print("{}={}".format(i-2,n**3))
else:
print("{}+".format(i-2*(n+1-x)),end='')
一个自然数,如果每一位数的位数次幂之和等于该自然数,则称之为Disarium数。
比如: 89=8+9 * 9。或者135= 1 + 3 * 3+ 5 * 5 * 5
输入一个正整数n,检查它是否为Disarium数, 是则输出YES否则输出NO。不考虑0,负数或者其他特殊情况。
格式:
输入格式:输入为整型
输出格式:是则输出YES否则输出NO
样例一:
输入: 175
输出: YES
答案:
'''
@Author :S1Lu
@Date :2022/11/13 15:30
'''
n = eval(input())
f = 1
s = 0
for i in str(n):
s += int(i)**f
f += 1
if s == n:
print("YES")
else:
print("NO")
一个自然数,如果每一-位数的位数次幂之和等于该自然数,则称之为Disarium数。
比如: 89=8+9 * 9。或者135= 1 + 3 * 3+ 5 * 5 * 5
输入整数区间,输出区间(含边界)内所有的Disarium数。不考虑0,负数或者其他特殊情况。
格式:
输入格式:输入为整型,空格分隔
输出格式:输出为整型,空格分隔
样例一:
输入:1 100
输出:1 2 3 4 5 6 7 8 9 89
答案:
'''
@Author :S1Lu
@Date :2022/11/13 15:34
'''
'''
@Author :S1Lu
@Date :2022/11/13 15:30
'''
def disarium (n):
f = 1
s = 0
for i in str(n):
s += int(i) ** f
f += 1
if s == n:
print(n,end=' ')
a,b = map(int ,input().split())
for i in range(a,b+1):
disarium(i)
判断一个正整数是否是快乐数字,如果一个数字能够通过有限次快乐变换成为1,则是快乐数字。快乐变换是对一个数字的每一位的平方数求和。
例如:对于68 =6 * 6+8 * 8= 100,100= 1 * 1 +0 * 0 +0 * 0= 1,因此68是快乐数字。输入一个正整数n,检查它是否为快乐数,是则输出YES,否则输出NO。不考虑0,负数或者其他特殊情况。
格式:
输入格式:输入为整型
输出格式:是则输出YES,否则输出NO
样例一:
输入: 19
输出: YES
答案:
'''
@Author :S1Lu
@Date :2022/11/13 15:40
'''
def isHappy(n):
def count(m):
global flag
lst.append(int(m))
result = 0
for i in range(len(m)):
result += int(m[i]) ** 2
if result == 1:
flag = 1
elif result in lst:
flag = 0
else:
count(str(result))
lst = []
m = str(n)
count(m)
return flag == True
n = eval(input())
if isHappy(n):
print("YES")
else:
print("NO")
输入整数区间,输出区间(含边界)内所有的素数。如果没有则输出空。不考虑0,负数或者其他特殊情况。
格式:
输入格式:输入为整型,空格分隔
输出格式:输出为整型,空格分隔
样例一:
输入: 100 130
输出: 101 103 107 109 113 127
答案:
'''
@Author :S1Lu
@Date :2022/11/13 15:56
'''
m,n = map(int,input().split())
def handlerNum(num):
if num > 1:
for i in range(2, num//2+1):
if (num % i) == 0:
return False
break
else:
return True
else:
return False
for i in range(m,n+1):
if handlerNum(i):
print(i,end=' ')
输入两个整数x和y,计算x的y次方的最后2位数。不考负数。
格式:
输入格式:输入为整型,空格分隔
输出格式:输出为整型
样例一:
输入: 13 12
输出: 81
答案:
'''
@Author :S1Lu
@Date :2022/11/13 15:58
'''
x,y = map(int,input().split())
print((x**y)%100)
输入正整数N,输出N以内(含N) 3的倍数,或者包含3的数字,比如13, 32等。
格式:
输入格式:输入整型
输出格式:输出整型,空格分隔。
样例一:
输入: 20
输出:3 6 9 12 13 15 18
答案:
'''
@Author :S1Lu
@Date :2022/11/13 16:12
'''
n = eval(input())
for i in range(1,n+1):
flag = False
for j in str(i):
if j =='3':
flag = True
break
if i % 3==0 or flag:
print(i,end=' ')
若三个连续的质数,相邻两个都相差2的,叫三生质数。输入正整数N,输出N以内(含N)的三生质数。没有就输出0。
格式:
输入格式:输入整型
输出格式:输出整型,空格分隔,每行一组。
样例一:
输入: 100
输出:3 5 7
答案:
'''
@Author :S1Lu
@Date :2022/11/13 16:18
'''
n = eval(input())
def handlerNum(num):
if num > 1:
for i in range(2, num//2+1):
if (num % i) == 0:
return False
break
else:
return True
else:
return False
flag = False
for i in range(1,n+1):
if handlerNum(i) and handlerNum(i+2) and handlerNum(i+4) and i+4<=n:
print(i,i+2,i+4)
flag = True
if not flag:
print(0)
请编写一个简单程序,输出5个质数,使相邻的每两个质数都相差6,并把它们按由小到大的顺序排列起来。这样的可能有多组,输出最小的一-组。
格式:
输入格式:无
输出格式:输出整型,空格分隔。
样例一:
输入:无
输出:5 11 17 23 29
答案:
'''
@Author :S1Lu
@Date :2022/11/13 16:31
'''
print("5 11 17 23 29")
请编写一个简单程序,由小到大的顺序输出3个相差10的质数。这样的可能有多组,输出最小的一组。。
格式:
输入格式:无
输出格式:输出整型,空格分隔。
样例一:
输入:无
输出:3 13 23
答案:
'''
@Author :S1Lu
@Date :2022/11/13 16:33
'''
print("3 13 23")
请编写一个简单程序,检查数字是否为回文。像12521, 123321, 这样的从左向右读和从右向左读是一样的数字是回文数字。
格式:
输入格式:输入整型
输出格式:输出Y或者N
样例一:
输入: 12521
输出: Y
答案:
'''
@Author :S1Lu
@Date :2022/11/13 16:34
'''
n = str(input())
if n == n[::-1]:
print("Y")
else:
print("N")
如果一个数是7的幂,或者能分解成7的不同幂的和,那么这个数就叫做忠实数。例如49=49, 8=1+7,57=1+7+49。注意1可以看成7的0次方。输入正整数N,判断它是不是忠实数,输出YES或者NO。
格式:
输入格式:输入正整数N
输出格式:输出YES或者NO
样例一:
输入: 2457
输出: YES
答案:
'''
@Author :S1Lu
@Date :2022/11/13 16:36
'''
n = int(input())
while(n>7):
if n%7==0:
n=n/7
else:
n=(n-1)/7
if n==1 or n ==7:
print("YES")
else:
print("NO")
请编写一个简单程序,判断自恋性数。如果一个正整数等 于其各个数字的立方和,则称该数为自恋性数(亦称为阿姆斯特朗数)
格式:
输入格式:输入整型
输出格式:输出Y或者N
样例一:
输入: 407
输出: Y
答案:
'''
@Author :S1Lu
@Date :2022/11/13 16:42
'''
n = eval(input())
s = 0
for i in str(n):
s += int(i)**3
if s == n:
print("Y")
else:
print("N")
请编写一个简单程序,输入正整数n,输出n以内自恋性数。如果一个正整数等于其各个数字的立方和,则称该数为自恋性数(亦称为阿姆斯特朗数)
格式:
输入格式:输入整型
输出格式:输出整型,空格分隔
样例一:
输入: 500
输出: 1 153 370 371 407
答案:
'''
@Author :S1Lu
@Date :2022/11/13 16:45
'''
def zilian(n):
s = 0
for i in str(n):
s += int(i) ** 3
if s == n:
return True
else:
return False
n = eval(input())
for i in range(1,n+1):
if zilian(i):
print(i,end=' ')
数学中,两个素数的乘积所得的自然数我们称之为半素数,也叫“双素数”,输入-个正整数,判断他是不双素数,输出YES或者NO。注意1不是双素数。不考虑0,负数等特殊情况。
格式:
输入格式:输入整型
输出格式:输出YES或者NO
样例一:
输入: 6
输出: YES
答案:
'''
@Author :S1Lu
@Date :2022/11/13 16:50
'''
n = int(input())
def handlerNum(num):
if num > 1:
for i in range(2, num//2+1):
if (num % i) == 0:
return False
break
else:
return True
else:
return False
def h(n):
for i in range(2,n):
for j in range(2,n):
if i*j == n and handlerNum(i) and handlerNum(j):
return True
return False
if h(n):
print("YES")
else:
print("NO")
输入正整数N,输出N以内(含N)6的倍数,并胞含6的数字,比如36等。
格式:
输入: 40
输出: 6 36
样例一:
输入: 40
输出: 6 36
答案:
'''
@Author :S1Lu
@Date :2022/11/13 17:18
'''
n = eval(input())
for i in range(1,n+1):
flag = False
for j in str(i):
if j =='6':
flag = True
break
if i % 6==0 and flag:
print(i,end=' ')
核反应堆中每秒钟内一个a粒子可以产生3个粒子,而一个粒子可以产生1个a粒子和2个β粒子。若在t=0时刻反应堆中有一个a粒子,求秒时反应堆中分别有多少个a粒子和β粒子。不考虑不合理的输入等特殊情况。
格式:
输入格式:输入整型
输出格式:输出整型,空格分隔
样例一:
输入: 6
输出: 183 546
答案:
'''
@Author :S1Lu
@Date :2022/11/13 17:20
'''
n = eval(input())
a = 1
b= 0
for i in range(1,n+1):
temp = b;
b= 3*a+2*b;
a = temp;
print(a,b)
输入一个数字N,编写-个程序,用该数字的所有数字重组一个最大数字。不考虑负数, 0等特殊情况。注意:给定的数字可能非常大,因此输入被视为字符串。
格式:
输入格式:输入字符串
输出格式:输出字符串
样例一:
输入: 38293367
输出: 98763332
答案:
'''
@Author :S1Lu
@Date :2022/11/13 17:32
'''
n = str(input())
a = []
for i in n:
a.append(int(i))
a.sort(reverse=True)
s = ''
for i in a:
s = s + str(i)
print(s)
输入一个正整数N,计算将N表示为四个正整数之和(比如5= 1+1+1+2)的可能方法的数量。
格式:
输入格式:输入整型
输出格式:输出整型
样例一:
输入: 41
输出: 511
答案:
#include
#include
#include
#include
#include
#include
using namespace std;
#define N 1000
#define ll long long
int main(){
int a;
cin >> a;
int ans = 0;
for (int i = 1; i <= a - 3; i++){
for (int j = i; j <= a ; j++){
for (int h = j; h <= a; h++){
if (a - i - j - h >= h) ans++;
}
}
}
cout << ans;
return 0;
}
数学中,两个素数的乘积所得的自然数我们称之为半素数,也叫“双素数”, 输入-一个正整数,输出0到N之间(包括N)所有双素数。注意1不是双素数。不考虑0,负数等特殊情况。
格式:
输入格式:输入整型
输出格式:输出整型,空格分隔。
样例一:
输入: 26
输出:4 6 9 10 14 15 21 22 25 26
答案:
'''
@Author :S1Lu
@Date :2022/11/13 17:52
'''
n = int(input())
def handlerNum(num):
if num > 1:
for i in range(2, num//2+1):
if (num % i) == 0:
return False
break
else:
return True
else:
return False
def h(n):
for i in range(2,n):
for j in range(2,n):
if i*j == n and handlerNum(i) and handlerNum(j):
return True
return False
for i in range(1,n+1):
if h(i):
print(i,end=' ')
如果一个世纪中的100个年号都不是素数,这个世纪就叫做合数世纪。求第一个合数世纪。从公元0年开始算。
格式:
输入格式:无
输出格式:输出这个世纪的第一年
样例一:
输入:无
输出: 1671800
答案:
'''
@Author :S1Lu
@Date :2022/11/13 18:08
'''
print(1671800)
给定一个正整数N, 将其分解为3个非负整数的累加和,并统计出这样做的方法数。比如2,有2种分解方法:
0+0+ 2=2 (0+2 +0=2 2 +0 + 0= 2可以和左边等式看做同一-种)
0+1+1=2(1+1+0=2 1 +0+1 = 2可以和左边等式看做同-种)
格式:
输入格式:输入整型
输出格式:输出整型
样例一:
输入: 3
输出: 3
答案:
'''
@Author :S1Lu
@Date :2022/11/13 18:11
'''
n =eval(input())
count = 0
for i in range(0,n+1):
for j in range(i,n+1):
for x in range(j,n+1):
if i+j+x == n:
count+=1
print(count)
输入正整数N,判断N的各位数字之和是否为回文数。(注: 回文数是-一个在反转时保持不变的数。比如121,7等。)不考虑不合理的输入等特殊情况。
格式:
输入格式:输入正整数N
输出格式:输出YES或者NO
样例一:
输入: 56
输出: YES
备注:
测试数据集输入数据包含长整型。
答案:
'''
@Author :S1Lu
@Date :2022/11/13 18:16
'''
n = eval(input())
s = 0
for i in str(n):
s += int(i)
m = str(s)[::-1]
if str(s) == m:
print("YES")
else:
print("NO")
输入正整数N (<1500),首先计算其逆序数M (比如12逆序后是21) 。然后输出N的M次方的最后3位数。
格式:
输入格式:输入正整数N
输出格式:输出整型
样例一:
输入: 12
输出:112
答案:
'''
@Author :S1Lu
@Date :2022/11/13 18:26
'''
n = eval(input())
m = int(str(n)[::-1])
print((n**m)%1000)
输入偶数N (偶数N大于2),返回两个素数,和等于偶数N。可能有几种的组合,仅输出最小值所在的组合,按从小到大输出。
格式:
输入格式:输入偶数N
输出格式:输出整型,空格分隔。
样例一:
输入: 74
输出: 3 71
答案:
'''
@Author :S1Lu
@Date :2022/11/13 18:31
'''
def handlerNum(num):
if num > 1:
for i in range(2, num//2+1):
if (num % i) == 0:
return False
break
else:
return True
else:
return False
flag = False
n = eval(input())
for i in range(2,n+1):
for j in range(1,n+1):
if i+j==n and handlerNum(i) and handlerNum(j):
print(i,j)
flag = True
break
if flag:
break