Tìm n nguyên dương, \(n>1\) nhỏ nhất sao cho với mọi k nguyên dương, ta có: \(n^k-n⋮1000\)
Hãy nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.
#include <bits/stdc++.h>
using namespace std;
long long a[1000006];
long long n;
int main()
{
for(int i=1;i<=1000006;i++){
a[i]=i*i;
}
cin>>n;
for(int i=1;i<=n;i++){
if(a[i]%n==0){cout<<a[i]/n;break;}
}
return 0;
}
#include <iostream>
#include <vector>
using namespace std;
vector<int> primeFactors(int n) {
vector<int> factors;
for (int i = 2; i * i <= n; i++) {
while (n % i == 0) {
factors.push_back(i);
n /= i;
}
}
if (n > 1) factors.push_back(n);
return factors;
}
int main() {
int n, k;
cin >> n >> k;
vector<int> a(n);
for (int i = 0; i < n; ++i) {
cin >> a[i];
}
vector<int> factors = primeFactors(k);
int sum = accumulate(a.begin(), a.end(), 0);
vector<vector<bool>> dp(n+1, vector<bool>(sum+1, false));
dp[0][0] = true;
for (int i = 1; i <= n; ++i) {
for (int j = 0; j <= sum; ++j) {
dp[i][j] = dp[i-1][j];
if (j >= a[i-1]) {
for (int factor : factors) {
if (a[i-1] % factor == 0) {
dp[i][j] = dp[i][j] || dp[i-1][j-a[i-1]];
break;
}
}
}
}
}
for (int j = 0; j <= sum; ++j) {
if (dp[n][j]) {
cout << j << endl;
break;
}
}
return 0;
}
Ta có: \(2000=2^4.5^3\).
Suy ra \(n\left(n+1\right)\left(n+2\right)\left(n+3\right)⋮125\)
mà \(n,n+1,n+2,n+3\)là bốn số tự nhiên liên tiếp nên có tối đa một số trong bốn số đó chia hết cho \(5\), khi đó số đó cũng phải chia hết cho \(125\).
Với \(n+3=125\Leftrightarrow n=122\)thử trực tiếp không thỏa.
Với \(n+2=125\Leftrightarrow n=123\)thử trực tiếp không thỏa.
Với \(n+1=125\Leftrightarrow n=124\)thử trực tiếp không thỏa.
Với \(n=125\)thử lại thỏa mãn.
Vậy \(n=125\)là giá trị cần tìm.
Ta thấy :
36n-1 - k . 33n-2 + 1 ⋮ 7 <=> 9 . ( 36n-1 - k . 33n-2 + 1 ) ⋮ 7
<=> 36n+1 - k . 33n + 9 ⋮ 7
Vì 36n+1 ≡ 3 ( mod 7 ) , suy ra 36n+1 + 9 ≡ 5 ( mod 7 )
Do đó để 36n+1 - k . 3 + 9 ⋮ 7 thì k . 33n ≡ 5 ( mod 7 )
Từ đó ta chứng minh được : Nếu n chẵn thì k ≡ 5 ( mod 7 ) , còn nếu n lẻ thì k ≡ -5 ( mod 7 )