02/10/2018, 14:07
[C++] Phân tích thừa số nguyên tố
1. Đề bài Phân tích thừa số nguyên tố Nhập một số nguyên dương N < 10000. Phân tích số N thành tích của các số nguyên tố. Yêu cầu: Xuất các số nguyên tố theo thứ tự giảm dần và xuất dấu nhân là “x” có khoảng trắng hai bên. Ví dụ: 999 = 37 x 3 x 3 x 3 1234567 = ...
1. Đề bài Phân tích thừa số nguyên tố
Nhập một số nguyên dương N < 10000. Phân tích số N thành tích của các số nguyên tố.
Yêu cầu: Xuất các số nguyên tố theo thứ tự giảm dần và xuất dấu nhân là “x” có khoảng trắng hai bên.
Ví dụ:
999 = 37 x 3 x 3 x 3
1234567 = 9721 x 127
Input:
Dòng thứ nhất, nhập số lượng trường hợp kiểm tra.
Các dòng còn lại, nhập số nguyên dương N < 10000000.
Output:
Xuất số chữ số cho từng trường hợp kiểm tra.
Input | Output |
4 999 1234567 823 3 | 37 x 3 x 3 x 3 9721 x 127 823 3 |
2. Code Phân tích thừa số nguyên tố C++
#include <iostream>
using namespace std;
long n,kq[10000],spt;
void xuli()
{
spt=0;
long i;
for (i=2; i<=n; i++)
{
while(n%i==0)
{
kq[++spt]=i;
n=n/i;
}
}
for (i=spt; i>1; i--)
cout << kq[i] << " x ";
cout <<kq[i]<<endl;
}
int main()
{
long test,i;
cin >> test;
for (i=1; i<=test; i++)
{
cin >> n;
xuli();
}
return 0;
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | #include <iostream> using namespace std; long n,kq[10000],spt; void xuli() { spt=0; long i; for (i=2; i<=n; i++) { while(n%i==0) { kq[++spt]=i; n=n/i; } } for (i=spt; i>1; i--) cout << kq[i] << " x "; cout <<kq[i]<<endl; } int main() { long test,i; cin >> test; for (i=1; i<=test; i++) { cin >> n; xuli(); } return 0; } |
Đặng Minh Tiến – UIT K11