Бодолт илгээх | Бүх бодолтууд | Шилдэг бодолтууд | Жагсаалт руу буцах |
ABR0559 - Мерсений тоо |
n натурал тоо өгөгдөв. n - ээс бага байх бүх Мерсений тоог ол. (хэрэв ямар нэг анхны тоог р анхны тооны тусламжтайгаар 2p-1 хэлбэрт тавьж болдог бол эхний анхны тоог Мерсений тоо гэнэ).
Input
n натурал тоо өгөгдөнө. (n < 2000000000)
Output
n - ээс бага байх бүх Мерсений тоог олж өсөх дарааллаар хэвлэнэ. Ийм тоо ганц ч олдохгүй бол "No solution" гэж хэвлэнэ.
Example
Input: 33 Output: 3 7 31
Нэмсэн: | sw40 |
Огноо: | 2008-10-26 |
Хугацааны хязгаарлалт: | 1s |
Эх кодын хэмжээний хязгаарлалт: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Програмчлалын хэлүүд: | Бүгд дараах хэлүүдээс бусад: ASM32-GCC MAWK BC C-CLANG NCSHARP CPP14 CPP14-CLANG COBOL COFFEE D-CLANG D-DMD DART ELIXIR ERL FANTOM FORTH GOSU GRV JS-RHINO JS-MONKEY JULIA KTLN NIM NODEJS OBJC OBJC-CLANG OCT PERL6 PICO PROLOG PYPY PYPY3 PY_NBC R RACKET RUST CHICKEN SQLITE SWIFT UNLAMBDA VB.NET |
Эх сурвалж: | Абрамов С. А. |
hide comments
|
|||||
2024-06-21 18:11:22
33 1 3 7 31 гэж хэвэлмээрийн |
|||||
2021-01-03 11:05:56
#include <bits/stdc++.h> using namespace std; int main () { int num; cin >> num; if (num < 3) { cout << "No solution\n" << endl; return 0; } for (int i = 2; pow(2, i) - 1 <= num && pow(2, i) - 1 <= 524287; i ++) { bool stat = true; for (int j = 2; j <= sqrt(i); j ++) if (i % j == 0) { stat = 0; break; } if (stat == 1) { int tester = pow (2, i) - 1; for (int j = 2; j <= sqrt(i); j ++) if (i % j == 0) { stat = 0; break; } if (stat == 1) printf("%d %d\n", tester); } } return 0; } |
|||||
2021-01-03 11:03:19
Хэрэв +524287 тоо орсон нөхцөлд хариу нь : 3 7 31 127 2047 8191 131071 524287 гарах ёстой. Тэгтэл тест дээр 2048 - 1 = 2047 буюу 2 ^ 11 - 1г зөв хариунд авахгүй байна. Энийг тайлбарлаад өгөх хүн бна уу Last edit: 2021-01-03 11:05:30 |
|||||
2018-07-28 05:43:04
#include <cstdio> using namespace std; int main() { int n; scanf("%d", &n); if (n<3)printf("No solution"); if (n>=3 && n<7)printf("3"); if (n>=7 && n<31)printf("3\n7"); if (n>=31 && n<127)printf("3\n7\n31"); if (n>=127 && n<8191)printf("3\n7\n31\n127"); if (n>=8191 && n<131071)printf("3\n7\n31\n127\n8191"); if (n>=131071 && n<524287)printf("3\n7\n31\n127\n8191\n131071"); if (n>=524287)printf("3\n7\n31\n127\n8191\n131071\n524287"); return 0; } |
|||||
2018-07-26 14:42:42
|
|||||
2018-07-26 14:42:14
|
|||||
2018-07-26 14:41:31
|
|||||
2018-07-26 14:41:00
|
|||||
2018-07-26 14:39:51
p ni ankhnii too gedgiig sanatsgaa |
|||||
2010-04-12 05:59:24 Piotr KÄ…kol
Oooh, I understand now. Thank You for Your answer. :-) // AC :D Last edit: 2010-04-12 06:22:22 |