| Show all threads     Hide all threads     Show all messages     Hide all messages | 
| Whats 28 WA | grmmmely | 1014. Product of Digits | 3 Aug 2025 20:52 | 1 | 
|  | 
| Some hints | Sayem | 1014. Product of Digits | 1 Jun 2024 18:47 | 3 | 
| The authors should've mentioned these in the question. Like if q is 0 then you should print 10 but if it is any number between 1 to 9 then you should print that number only, i.e. 2 for 2, 4 for 4 not 14 for 4.Thanks, that saved me a lot of time. I was printing 0 for 0. Which makes sense in my opinion.thanks to you .It was really helpful | 
| Test 42 | BENDER | 1014. Product of Digits | 29 Mar 2024 02:32 | 2 | 
| How is it POSSIBLE to find 42 test case?It seems like everything should work fine..
OK, found my mistake. 777&222 would be very helpful test cases) | 
| WA8 | Kruppov07 | 1014. Product of Digits | 15 Mar 2024 16:12 | 2 | 
| WA8 Kruppov07 14 Jun 2020 16:47 150 : 556
 Edited by author 14.06.2020 17:05
Re: WA8 Dmitry Zhukov 15 Mar 2024 16:12 There is another interesting test case that might be a cause of WA8. Try 12, and the right answer should be 26.
 Edited by author 15.03.2024 16:13
 | 
| get WA at test 41 | Fahim | 1014. Product of Digits | 1 Dec 2023 18:13 | 1 | 
| #include<bits/stdc++.h>using namespace std;
 bool isPrime(int n)
 {
 if(n!=2&&n%2==0)return false;
 if(n<2)return false;
 for(int i=3;i<=sqrt(n);i+=2)
 {
 if(n%i==0)return false;
 }
 return true;
 }
 int main()
 {
 int n;
 cin>>n;
 int x=9,r;
 if(n==1)cout<<1<<endl;
 else if(n==0)cout<<10<<endl;
 else{
 vector<int>v;
 while(1)
 {
 if(n%x==0)
 {
 if(isPrime(n)==true)
 {
 if(n>9){cout<<-1<<endl;return 0;}
 }
 n=n/x;
 if(x==1)break;
 v.push_back(x);
 }
 else
 {
 x--;
 }
 
 }
 for(int i=v.size()-1;i>=0;i--)
 {
 cout<<v[i];
 }
 cout<<endl;
 }
 }
 | 
| Fun fact (Test#5) | Karl Hutchinson | 1014. Product of Digits | 13 Nov 2022 12:38 | 3 | 
| The output needs to be sorted in ascending order(!)
 so for test number 5: 45
 
 the correct answer is 59 (5*9)
 
 and 95 (9*5) will be rejected.
 
 Hope this helps someone.
Mine does return 59 yet its said to be WAsimple anwser: WA
 
 Edited by author 13.11.2022 12:39
 | 
| Wrong answer	5 | Boar | 1014. Product of Digits | 15 Oct 2022 20:30 | 1 | 
| What is the mistake?n = int(input())
 a = []
 for i in range(1, n+1):
 if n % i == 0:
 a.append(i)
 if n == 1:
 print("1")
 exit(0)
 if n == 0:
 print("10")
 exit()
 if len(a) > 2:
 for i in range(len(a) - 1):
 if a[i] * a[i + 1] == n or a[i]*a[i] == n:
 if a[i] * a[i + 1] == n:
 s = "".join(sorted(str(a[i])+str(a[i+1])))
 print(s)
 else:
 print(a[i], a[i], sep="")
 else:
 print("-1")
 | 
| My code is getting Wrong answer 5 despite getting correct answers for all possible cases. | tdnnojtupbkmuhehvb | 1014. Product of Digits | 14 Oct 2022 13:40 | 2 | 
| Whats wrong with anything here?#include <bits/stdc++.h>
 using namespace std;
 using ll=long long;
 using ui=unsigned int;
 int main() {
 //ios::sync_with_stdio(0);
 //cin.tie(0);
 ll n;cin>>n;
 if(!n){
 cout<<10;
 return 0;
 }
 else if(n<10){
 cout<<n;
 return 0;
 }
 vector<int>v;
 ll l=n;
 for(bool q=1;q;){
 q=0;
 for(ll i=9;i>1;i--){
 if(l%i==0){
 l/=i;
 v.push_back(i);
 q=1;
 
 }
 }
 }
 v.push_back(l);
 sort(v.begin(),v.end());
 if(v[0]==1)for(int i=1;i<v.size();i++)cout<<v[i];
 else cout<<-1;
 return 0;
 }
Ok later I figured out that instead of dividing by all the numbers consecutively, dividing by the current factor between 2 to 9 repeatedly until it isn't a factor provides the fewest digits. For example, input 1000000 gives 245555558 in the above program, whereas 2 and 4 could be replaced by 8 for better result.
 Edited by author 14.10.2022 13:41
 | 
| WA 44 | Тимофей | 1014. Product of Digits | 17 Aug 2022 20:40 | 1 | 
| WA 44 Тимофей 17 Aug 2022 20:40 if u have wa 44 just remove one in the cyclic factorization, if there is one.<=sqrt() + 1   -- bad
 <=sqrt()       -- good
 | 
| fails at test 28 | Gautr | 1014. Product of Digits | 7 Jan 2021 07:38 | 1 | 
| I don't know the problem
 use std::io;
 use std::io::BufReader;
 use std::io::BufRead;
 fn minimal_product_digit(n: i64) -> i64{
 if n == 0 {return 10};
 if n < 10 { return n};
 
 let f : Vec<i64> = vec![2,3,5,7];
 let mut aux = n;
 let mut ret : Vec<i64> = Vec::new();
 for i in f{
 
 if  aux % i== 0 {
 
 loop{
 aux/=i;
 ret.push(i);
 if aux % i != 0 {
 break;
 }
 }
 }
 };
 
 if ret.is_empty() || aux > 1 {
 return -1;
 }
 
 match ret.iter().fold(0,|acc,elem| if *elem == 3{acc + 1} else {acc}) {
 
 1 => {
 
 let index = ret .iter().position(|&x| x == 3).unwrap();
 
 if index > 0{
 
 ret.remove(index);
 
 let k = ret.get_mut(index - 1).unwrap();
 
 *k = 6;
 
 ret.sort();
 
 }
 }
 
 _ => ()
 
 }
 let mut v : Vec<i64> = Vec::new();
 for i in ret{
 
 match i {
 
 2 | 3=>
 
 match v.last_mut(){
 
 None => v.push(i),
 Some(last) if i ==3 && *last == 2 => v.push(i),
 Some(last) => {
 let valor = *last;
 if (valor * i) < 10{
 *last = valor*i
 }
 else{
 v.push(i);
 }
 }
 }
 _ => v.push(i)
 }
 }
 
 v.sort();
 v.iter().fold(0, |acc, elem| acc * 10 + elem)
 
 }
 
 fn main() {
 
 let mut line = String::new();
 let mut stdin = BufReader::new(io::stdin());
 
 stdin.read_line(&mut line).unwrap();
 
 let lim = line.trim().parse::<i64>().unwrap();
 
 println!("{:?}",minimal_product_digit(lim));
 
 }
 | 
| WA on test case 13 | _confused | 1014. Product of Digits | 7 Dec 2020 11:18 | 1 | 
| can anyone tell me what is test case 13? | 
| test 4 fails | anupam | 1014. Product of Digits | 1 Oct 2020 08:04 | 7 | 
| i dont know why my code is failing test 4.can any body give me a series of test cases where this kind of program may fail. please helptry it ACM.Tolstobrov_Anatoliy[Ivanovo SPU] 7 Feb 2006 01:18 but i think if n<10 then least possible number will  be n.your solution makes it 2 digit.
The task is to find a minimal POSITIVE number, so 0 doesn't work. | 
| Wrong Answer in task 2 | MrRobot | 1014. Product of Digits | 17 Aug 2020 19:53 | 1 | 
| #include <iostream>#include <vector>
 #include <algorithm>
 
 using namespace std;
 
 int main()
 {
 int Num = 0, ans = -2;
 
 cin >> Num;
 
 vector <int> fact;
 
 int n = 2;
 
 while (Num > 1)
 {
 if (n > 9) {
 ans = -1;
 break;
 }
 while (Num % n == 0) {
 Num /= n;
 fact.push_back(n);
 }
 n++;
 }
 
 sort(fact.begin(), fact.end());
 
 if (n < 10 & ans != -1)
 {
 ans = 0;
 for (int i = 0; i < fact.size(); i++) {
 //ans += fact.at(i) * (i*10);
 cout << fact[i];
 }
 }
 
 
 //cout << ans;
 }
 | 
| Some tests for you to check | Andrew Suhani | 1014. Product of Digits | 17 Aug 2020 14:41 | 8 | 
| Hey! I solved this problem and here are some test that you may check for you solution:
 0->10
 1->1
 2->2
 3->3
 4->4
 5->5
 6->6
 7->7
 8->8
 9->9
 10->25
 11->-1
 12->26
 13->-1
 14->27
 15->35
 16->28
 17->-1
 18->29
 19->-1
 20->45
 21->37
 22->-1
 23->-1
 24->38
 25->55
 26->-1
 27->39
 28->47
 29->-1
 30->56
 31->-1
 32->48
 33->-1
 34->-1
 35->57
 36->49
 37->-1
 38->-1
 39->-1
 40->58
 41->-1
 42->67
 43->-1
 44->-1
 45->59
 46->-1
 47->-1
 48->68
 49->77
 50->255
 51->-1
 52->-1
 53->-1
 54->69
 55->-1
 56->78
 57->-1
 58->-1
 59->-1
 60->256
 61->-1
 62->-1
 63->79
 64->88
 65->-1
 66->-1
 67->-1
 68->-1
 69->-1
 70->257
 71->-1
 72->89
 73->-1
 74->-1
 75->355
 76->-1
 77->-1
 78->-1
 79->-1
 80->258
 81->99
 82->-1
 83->-1
 84->267
 85->-1
 86->-1
 87->-1
 88->-1
 89->-1
 90->259
 91->-1
 92->-1
 93->-1
 94->-1
 95->-1
 96->268
 97->-1
 98->277
 99->-1
 100->455
 
 Good Luck!
I have checked for my solution. All done. But I have "Wrong answer" at test 8.....try this test:732421875
 result must be:
 3555555555555
and this:
 0
 (result: 10)
 
 1
 (result: 1)
 
 Edited by author 15.06.2011 14:32
Shouldn't the test value for
 1 be 11 and so on for single digit numbers?
 | 
| Salam | Bekmuhamet | 1014. Product of Digits | 17 Aug 2020 14:14 | 1 | 
| Salam Bekmuhamet 17 Aug 2020 14:14  
 
 Edited by author 17.08.2020 15:23
 
 Edited by author 17.08.2020 15:23
 
 Edited by author 17.08.2020 15:23
 | 
| if n = 0 or n = 1 ? | Tanim | 1014. Product of Digits | 19 May 2020 18:51 | 4 | 
| what will the output if
 input = 1 or 0 and why?
if n=0 then q=10if n=1 then q=1
Should be 11 though, I don't know why authors decided on 1. The solution requires a product of digits. 1 by itself isn't a product at all.
 Edited by author 19.05.2020 18:51
 | 
| Proper hints for all the test cases out there | samio | 1014. Product of Digits | 21 Feb 2020 00:34 | 1 | 
| This problem can be solved using greedy technic. Method is to divide the given number from 9 to 2. Each time we will continue to divide and update the number as we go. We will keep dividing N with the same number utill its impossible to do so.And for each division we will save the number which was divisible by given number. And by "save" i mean pushing the number in a stack or a in a vector or an array. If you are using other than stack you might print out the numbers in a reverse manner.  And when we are getting "-1"? I already wrote that, we keep updating the number. so after we pass the 9 to 2 loop, we should be left with a value of 1 in the variable N ( given number ). Incase N!=1 we are just printing "-1".  For the case N=1 or N=0? for the case 1 you should just print "1" and for the case 0 print "10", we can not print 01 since this refers to number, 1.  If you have problem understanding what i have just written or for better understanding, give this a go : https://ideone.com/709cog Edited by author 21.02.2020 00:34 Edited by author 21.02.2020 00:38 Edited by author 21.02.2020 00:41 | 
| Don't know what to do | Rodrigo Morales [UTEC] | 1014. Product of Digits | 7 Nov 2019 02:42 | 2 | 
| I have tried everything.
 Here are some testcases from my algorithm:
 0: 10
 1: 1
 2: 2
 3: 3
 4: 4
 5: 5
 6: 6
 7: 7
 8: 8
 9: 9
 10: 25
 12: 26
 14: 27
 15: 35
 16: 28
 18: 29
 20: 45
 21: 37
 24: 38
 25: 55
 27: 39
 28: 47
 30: 56
 
 Some big numbers:
 16859136: 267778888
 16875000: 3555555589
 16934400: 355778889
 16941456: 277777789
 17006112: 48999999
 17010000: 555567899
 17146080: 256778999
 17150000: 1555557778
 17203200: 155788888
 17210368: 177777888
 17222625: 355579999
 17280000: 555568889
 17287200: 455777789
 17294403: 177777777
 17360406: 67799999
 17364375: 555577799
 17418240: 256788899
 17496000: 355588999
 17500000: 4555555578
 17503290: 257777999
 17561600: 455777888
 17578125: 5555555559
 17635968: 67889999
 17640000: 555577889
 17647350: 556777777
 17694720: 256888889
 17714700: 255699999
 17718750: 2555555799
 
 long long int minimoentero3(long int num)
 {
 long long int nf=result;
 return nf;
 }
 
 
 int main()
 {
 long int n;
 cin >> n;
 
 cout<<minimoentero3(n); <- Here the result is sent.
 }
 
 Edited by author 26.10.2017 18:28
test17294403: 177777777
 
 17294403 != 177777777 (5764801)
 also
 77777777 < 177777777
 
 right answer for this test 377777777
 | 
| Hints | Marius Zilenas | 1014. Product of Digits | 16 Apr 2019 19:57 | 4 | 
| Hints Marius Zilenas 16 Oct 2013 15:03 Factorize (in 1..9 figures) the N and then reduce the resulting number of figures.Re: Hints Ealham Al Musabbir 9 Jul 2015 16:05Re: Hints abdur rahman shajib 11 Oct 2018 13:39For each i = 9 to 2, repeatedly divide n by i until it cannot be further divided or the list of numbers from 9 to 2 gets finished. Also, in the process of division push each digit i onto the stack which divides n completely. After the above process gets completed check whether n == 1 or not. If not, then print “-1”, else form the number k using the digits from the stack containing the digits in the same sequence as popped from the stack | 
| Memory Limit Exceeded!!! Why?I don't understand | Scaletta_Z | 1014. Product of Digits | 18 Apr 2018 00:49 | 2 | 
|  
 Edited by moderator 23.08.2020 01:12
Did you try some big prime number? Like 777777773. |